如何在ASP.NET MVC4 Razor中创建只读文本框

时间:2014-03-19 13:15:26

标签: asp.net-mvc razor

我正在使用

 <td>@Html.TextBoxFor("code",new { @readonly="readonly" })</td>

但是收到错误。什么是正确的语法?

错误:

Error   1   The type arguments for method 'System.Web.Mvc.Html.InputExtensions.TextBoxFor<TModel,TProperty>(System.Web.Mvc.HtmlHelper<TModel>, System.Linq.Expressions.Expression<System.Func<TModel,TProperty>>, System.Collections.Generic.IDictionary<string,object>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.  c:\Users\ATPL\Documents\Visual Studio 2012\Projects\AST_MGMT\AST_MGMT\Views\Department\Add.cshtml   7   18  AST_MGMT

3 个答案:

答案 0 :(得分:3)

假设您的视图中有一个模型,您可以使用“model”代表您的模型的类似内容:

@Html.TextBoxFor(model => model.code, new { @readonly="readonly" })

答案 1 :(得分:2)

您应该尝试<td>@Html.TextBox("code",new { @readonly="readonly" })</td>,在使用TextBoxFor时,您需要使用lambda表达式从 ViewModel 传递属性。

答案 2 :(得分:1)

@Html.TextBoxFor()使用:

@Html.TextBoxFor(model => model.code, new { @readonly="readonly" })

@Html.TextBox()使用:

@Html.TextBox("code", "default value ", new { @readonly="readonly" })