저는 Microsoft ASP MVC 프레임 워크를 연구 중입니다. 여기 내 페이지가 이상해.ASP.net에서 컨트롤이 새로 고쳐지지 않습니다. MVC
페이지에 두 개의 드롭 다운 목록이 있습니다. 첫 번째 폼은 컨트롤러에 매개 변수를 전달하여 폼을 다시 게시합니다. 컨트롤러는 두 번째 드롭 다운 목록과 두 개의 텍스트 상자와 같은 다른 컨트롤을 업데이트합니다. 뷰 데이터에 데이터를 전달합니다. 그리고 컨트롤에 할당합니다 (SelectList to DropDownList 및 string to TextBox). 그러나 그 통제는 게시물 이전과 동일하게 유지됩니다. 어떻게 해결할 수 있습니까? 미리 감사드립니다!
감사
편집 :
감사합니다! 여기 내 코드입니다 :
보기 :
<script type="text/javascript" language="javascript">
function Postback() {
var control = document.getElementById("Country");
var parameter = document.getElementById("CountryName");
parameter.value = control.value;
document.forms.item(0).submit();
}
</script>
<%Html.BeginForm();%>
<fieldset>
<legend>Fields</legend>
<p style="height: 0px">
<input type="hidden" id="CountryName" name="CountryName" value="" />
</p>
<p>
<label for="Country">Country:</label>
<%=Html.DropDownList("Country", (SelectList)ViewData["Countries"]), new { onchange="Postback()" })%>
</p>
<p>
<label for="State">State:</label>
<%=Html.DropDownList("State", (SelectList)ViewData["States"])%>
</p>
<p>
<label for="Brief Intro">Introduction:</label>
<%= Html.TextBox("Intro", ViewData["Introduction"]) %>
</p>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
<%Html.EndForm(); %>
컨트롤러 :
public ActionResult Info()
{
ViewData["Countries"] = new SelectList(_db.Coutries.ToList(), "Id", "Name");
return View();
}
AcceptVerbs(HttpVerbs.Post)]
public ActionResult Info(int country)
{
ViewData["Countries"] = new SelectList(_db.Coutries.ToList(), "Id", "Name", country);
ViewData["States"] = new SelectList(_db.States.Where(s => s.countryid == country).ToList(), "Id", "Name");
ViewData["Info"] = _db.CountryInfo.SingleOrDefault(info => info.countryid == country).Content;
return View();
}
편집 : 두 번째 컨트롤러에 ModelState.Clear()를 호출하면 해당 문제를 해결. 제안 해 주신 모든 분들께 감사드립니다! 정말 고마워!
너무 적은 정보를 제공하고있는 것으로 보입니다. –
몇 가지 코드를 게시하면 도움이 될 것입니다. –
보기에서 코드를 가져오고 GET 및 POST 동작을 모두 수행하십시오. –