我有一个View显示项目列表。我想在用户选择一个“编辑”时显示现有项目,或者当用户单击“创建”时显示新项目。这个“单个项目”窗口将在许多不同的地方被调用,所以我想将功能“编辑”和“创建”合并到一个视图中,这并不是太糟糕。我明白我可以通过在调用者的同一级别上创建一个视图页面来实现这一点,并且当用户在该项目窗口上单击“提交”时,项目控制器完成其工作,然后重定向回到调用者页面(项目列表或其他呼叫者)。但我想尝试另一种方法,即将此Item窗口作为弹出窗口,当用户点击“show modal”按钮时,调用者页面对控制器进行ajax调用,将项目的数据(或其id)传递为参数,并且控制器动态生成MvcHtmlString,返回给调用者,调用者使用收到的MvcHtmlString显示弹出窗口。一切似乎工作,但在我的控制器中的大量html代码看起来很混乱。MVC使用HtmlHelper方法LaberFor(),EditorFor()in controller
所以我不知道如何使用的HtmlHelper产生MvcHtmlString在控制器,例如,我有一个对象类型“项”,我该怎么办之类的东西Html.LabelFor(item => item.Name)
,或Html.EditorFor(item => item.Name)
在控制器并获得MvcHtmlString?
为什么控制器创建html?你能不能创建一个局部视图(在View文件夹中定义)并让你的控制器返回局部视图? – Sparrow
如果你想用你的html做非凡的事情,可以考虑使用部分视图或显示模板。 –
请参阅[此问题](http://stackoverflow.com/q/26362910/215552)及其有关在视图之外构建HTML的信息的答案。 –