我有一个Html.TextBox(),我需要在某些情况下禁用它。对于TextArea,它是这样的:
<%=primaryLang ? Html.TextArea("e.location", new { rows = 2, cols = 60 }) : Html.TextArea("e.location", new { rows = 2, cols = 60, disabled = "true" })%>
但对于TextBox,这是不可能的:
<%=primaryLang ?
Html.TextBox("e.startDate") :
Html.TextBox("e.startDate", new { disabled = "true"})%>
它将在值中发出{disabled=true}。这是因为允许您传递HtmlAttributes的唯一函数也需要传递模型。这个视图是强类型的,模型是自动填充的。
如果我像这样传递它:
Html.TextBox("e.startDate", Model.e.startDate, new { disabled = "true"})
或者像这样:
Html.TextBox("e.startDate", null, new { disabled = "true"})
GET版本可以工作,但POST版本将发出NullReferenceException。以上两种方法似乎都有完全相同的效果。两者都将在GET上显示来自模型的正确数据。
如果我像这样放纵它:
Html.TextBox("e.startDate")
它将正常工作,对于POST和GET...
为什么?有什么方法可以实现吗?
谢谢!:)
感谢下面的答案,我是这样解决的:
<%=primaryLang ?
Html.TextBox("e.startDate") :
Html.Hidden("e.startDate") + Html.TextBox("e.startDate", null, new { disabled = "true"})%>
https://stackoverflow.com/questions/1426221
复制相似问题