Asp.net mvc 基于部分视图中的操作的ASP.NET MVC只读字段

Asp.net mvc 基于部分视图中的操作的ASP.NET MVC只读字段,asp.net-mvc,Asp.net Mvc,在ASP.NET MVC中使用局部视图封装创建/编辑标记时,更改根据操作呈现哪个控件的最佳方法是什么 例如,我想只允许在创建帐户时输入电子邮件地址(通过文本框),然后在查看帐户时查看(通过普通HTML) 在伪代码中,我期望如下所示: <% if(Action == Create) { Html.TextBox("EmailAddress") } else { Html.Encode(Model.Person.EmailAddress) } %> 有什么建议吗?您可以使

在ASP.NET MVC中使用局部视图封装创建/编辑标记时,更改根据操作呈现哪个控件的最佳方法是什么

例如,我想只允许在创建帐户时输入电子邮件地址(通过文本框),然后在查看帐户时查看(通过普通HTML)

在伪代码中,我期望如下所示:

<% if(Action == Create) {
  Html.TextBox("EmailAddress")
} else { 
  Html.Encode(Model.Person.EmailAddress)
} %>


有什么建议吗?

您可以使用自己的HTML助手类来封装逻辑:

public static string DualModeTextBox(this HtmlHelper helper, ViewMode viewMode, string textBoxName, string textBoxValue)
{
  if (viewMode == ViewMode.Edit) {
    return System.Web.Mvc.Html.InputExtensions.TextBox(helper, textBoxName);
  } 
  //else
  return helper.Encode(textBoxValue);
}
对于更复杂的任务,你也可以考虑。