【发布时间】:2012-04-19 23:19:30
【问题描述】:
我想做这样的事情,这样我就可以创建一个模式对话框,稍后我会用 jQuery 调用它
<div class="modal" id="modalName" style="display: none;">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>Edit Contacts</h3>
</div>
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new Dictionary<string, object> { { "class", "form-horizontal" } }))
{
<div class="modal-body">
@Html.EditorFor(model => new ViewModel(), "ViewModelTemplateName")
</div>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal">Close</a>
<button type="submit" class="btn btn-primary">
Submit</button>
</div>
}
</div>
在这条线上
@Html.EditorFor(model => new ViewModel(), "ViewModelTemplateName")
我得到了错误
模板只能用于字段访问、属性访问、 一维数组索引,或单参数自定义索引器 表达式。
我不明白为什么它会关心实例的位置或内容(只要它的类型正确)
@Html.Partial("~/Views/Shared/EditorTemplates/ViewModel.cshtml", new ViewModel()) 可以解决问题,但我必须声明模板的完整路径......这有点糟糕。
那么有没有更好的方法呢?
【问题讨论】:
-
抱歉打错字了(为了保护无辜者)我会编辑和修正。
-
是的,但使用模型并不总是您想要做的。数据注释很好,它们给了我们很好的验证和漂亮的名字。当我想在 jQuery 中用我的页面做一些更丰富的事情时,只需将视图模型呈现为模板就很好,它们让诸如 knockoutjs 和 twitter-bootstrap 之类的东西发挥它的魔力。
标签: c# asp.net-mvc editorformodel