【发布时间】:2018-04-06 10:22:21
【问题描述】:
我正在开发一个 ASP.NET MVC-4 Web 应用程序。我在我的操作方法中定义以下内容来构建SelectList:
ViewBag.CustomerID = new SelectList(db.CustomerSyncs, "CustomerID", "Name");
然后我在我的View 中呈现我的DropDownListFor 如下:
@Html.DropDownListFor(model => model.CustomerID, (SelectList)ViewBag.CustomerID, "please select")
如图所示,我将ViewBag 属性命名为等于Model 属性名称,即CustomerID。根据我自己的测试,定义相同的名称不会导致任何问题或冲突,但我应该避免这种情况吗?
【问题讨论】:
-
不要这样做 - 它会导致问题(例如,您无法获得任何客户端验证)
-
@StephenMuecke 为什么我不会得到任何客户端验证......现在我将 customerID 作为 int 并且它是必需的。默认情况下,我得到了客户端验证,当用户尝试提交表单时,他会收到需要 CustomerID 的错误...所以不确定我无法获得任何客户端验证是什么意思...
-
另一个问题是,如果在控制器中设置了
CustomerID的值(即编辑和现有实体),在下拉列表中将无法正确选择。 -
@StephenMuecke 返回客户端验证.. 现在“请选择”的值将为空,因此客户端验证仍然有效.. 这是标记
-
@SeM,绝对不是。您不会获得客户端验证。
标签: asp.net asp.net-mvc asp.net-mvc-4 html-helper html.dropdownlistfor