我的ActionResult看起来像这样:
public ActionResult Index(string engineer, string contactName,
string company, string searchKeyword)
{
然后它返回一个基于下面运行的LINQ查询的视图,它使用传入的参数(engiener,contactName等)来确定返回的模型。
我在视图中生成一个表单,该表单用作将值发布到控制器以过滤结果的表单。目前它看起来像这样 - 代码工作正常,搜索框工作,但这似乎是不好的做法,我不能在Html.Editor中添加一个类:
<div class="form-group">
<div class="editor-label">
@Html.Label("Contact Name")
</div>
<div class="editor-field">
@Html.Editor("contactName")
</div>
</div>
<div class="form-group">
<div class="editor-label">
@Html.Label("Keyword Search")
</div>
<div class="editor-field">
@Html.Editor("searchKeyword")
</div>
</div>
我希望能够使用EditorFor,因为这似乎是最佳实践,但由于参数不在模型中,我不知道如何在语句的第一部分引用它们?
@Html.EditorFor(model => what Do I put here!?)
答案 0 :(得分:0)
您需要在模型中拥有这些属性,这是该框架的重点。
你可能没有意识到,你传递给页面的模型(让我们称之为&#34;查看模型&#34;)并不一定要与您存储在数据库中的一个(&#34;域模型&#34;)。视图模型需要具有控制器需要从视图传递到视图的所有内容。域模型需要拥有控制器需要从数据库传递到数据库的所有内容。
虽然在琐碎的场景中(例如普通的CRUD应用程序)可能会发生同样的事情,但如果它对您不起作用,请不要犹豫,改变它们。将包含所需参数的(新)模型传递给视图。