我是新的MVC,我正试图使我的第一个Ajax页面,PartialView。
我有一个像这样的动作
[HttpGet]
public PartialViewResult MainContent()
{
return PartialView(new ClockingModel());
}
[HttpPost]
public PartialViewResult MainContent(SingleClocking SingleClocking)
{
// update logic
return PartialView(myClockingModel);
}
我发现的是,视图呈现,我输入一些数据,它发回正确。我的局部视图包括一个select:
@Html.DropDownListFor(x => x.SingleClocking.InWhen, new SelectList(Model.DropDownValues, Model.DefaultValue))
select显示的是我在GUI上更改的值,而不是新的DefaultValue?
如果这是普通的Asp。Net我认为这是因为回发数据或视图状态,但MVC不使用这些?
我可以看到通过fiddler返回的视图,它显示了根据客户端选择的值,而不是我期望通过服务器看到的值。
我肯定我错过了一些简单的东西,有提示吗?
还有,我可以看看服务器上View的值吗?这不会工作,但像这样:string viewText = PartialView(myClockingModel);
注。我不认为这是缓存,我试过用属性
尽管我在问这个问题之前搜索了一段时间,我终于找到了答案。知道Rick Strahl也有同样的困惑,我感觉好多了。
贴出答案供他人查找
长话短说,这就是设计,这个博客值得一读
http://weblog.west-wind.com/posts/2012/Apr/20/ASPNET-MVC-Postbacks-and-HtmlHelper-Controls-ignoring-Model-Changes