Asp.net mvc 3 部分视图中的形式-需要正确的答案
这是一个后续行动 尽管作者提出了解决这个问题的办法。我想找到一个正确的答案,为什么这不起作用 我没有访问原始代码的权限,但这是我的(因此我可以回答以下问题): @Model.IngreditId包含正确的值。但文本框包含发送给控制器的模型值(原文如此!),显然每个表单的值都是相同的Asp.net mvc 3 部分视图中的形式-需要正确的答案,asp.net-mvc-3,razor,foreach,model-binding,asp.net-mvc-partialview,Asp.net Mvc 3,Razor,Foreach,Model Binding,Asp.net Mvc Partialview,这是一个后续行动 尽管作者提出了解决这个问题的办法。我想找到一个正确的答案,为什么这不起作用 我没有访问原始代码的权限,但这是我的(因此我可以回答以下问题): @Model.IngreditId包含正确的值。但文本框包含发送给控制器的模型值(原文如此!),显然每个表单的值都是相同的 [AjaxOnly] public JsonResult IngredientSearchUpdate( AddingComponentVM dataIn, [ModelBinder(typeof(S
[AjaxOnly]
public JsonResult IngredientSearchUpdate(
AddingComponentVM dataIn,
[ModelBinder(typeof(SearchOptionsBinder))] SearchOptions sessionSO)
如果没有在签名中添加ComponentVM的操作调用上述相同的代码,则表单将正确呈现
public PartialViewResult IngredientSearch([ModelBinder(typeof(SearchOptionsBinder))] SearchOptions sessionSO)
有人能告诉我这种奇怪(至少对我来说)行为的原因吗?谢谢 因此我无法入睡,但答案如下: 使用PartialView还是EditorTemplates并不重要。如下所述: “HTML帮助程序在尝试查找密钥时使用以下优先顺序:
ModelState.Clear()
我更喜欢使用EditorTemplates来呈现此类表单,而不是局部视图。Partials有时会表现得很奇怪(虽然如果你知道它是如何工作的,这是合乎逻辑的),并且会有意想不到的行为。非常好而且有趣的建议。我仍然想知道为什么它能像他们那样工作!ThanksI用EditorTemplates实现了这一点,同样的事情也发生了。与POST发送的数据发生冲突。显然,TextBoxFor(etc)就是这样工作的。它们首先在ViewData、ViewBag中搜索值,然后在model中搜索值。我仍然需要帮助。
ModelState.Clear()