MVC3을 사용하여 SelectList의 선택된 값을 올바르게 설정하면 HttpGet에서 뷰가 렌더링되지만 HttpPost에서 올바르게 렌더링되지 않습니다. 모델이 HttpPost의 View로 전달되기 전에 모델을 검사했으며 올바르게 업데이트되고 있습니다.보기가 선택된 태그를 올바르게 렌더링하지 못하는 것처럼 보입니다.SelectList SelectedValue가 HttpGet에서 작동하지만 HttpPost에서 작동하지 않는 이유는 무엇입니까?
HttpPost에서 <select>
은 편집 후에도 양식을 제출하기 전과 동일하게 렌더링됩니다. HttpPost 메서드의 m.SelectedWidgetId = 2;
이 실행되고 모델이 업데이트되지만보기에는 반영되지 않습니다.
무엇이 여기에 있습니까?
모델 :
public class WidgetModel
{
private Widget[] Widgets {
get
{
return new Widget[] {
new Widget { Id=1, Name="Item 1" },
new Widget { Id=2, Name="Item 2" },
new Widget { Id=3, Name="Item 3" }
};
}
}
public SelectList WidgetList
{
get
{
return new SelectList(Widgets.ToList(), "Id", "Name", SelectedWidgetId);
}
}
public int SelectedWidgetId { get; set; }
}
보기 :
@model thisProject.Models.WidgetModel
@using (Html.BeginForm())
{
@Html.DropDownListFor(m => m.SelectedWidgetId, Model.WidgetList, "Select...");
<input type='submit' />
}
컨트롤러 방법; selectList의의 selectedvalue을 MVC asp.net에서
public ActionResult Widget()
{
var m = new WidgetModel();
m.SelectedWidgetId = 1;
return View(m);
}
[HttpPost]
public ActionResult Widget(WidgetModel m)
{
m.SelectedWidgetId = 2;
return View(m);
}
내 문제가 바로 끝났습니다. 고맙습니다. –
@ 다린 - 어떻게 그렇게 똑똑해 졌니? :) – Sam