我使用以下内容:
@model IEnumerable<Abc.Service.Shared.Models.Company>
@Html.TextBoxFor(m >= m.Name , new { @id="CompanySearch" })
我收到错误:
CS0103:当前上下文中不存在名称“m”
任何人都可以帮我解决这个问题吗?
更正箭头后,我收到另一个错误:
@Html.TextBoxFor(m => m.Name , new { @id="CompanySearch" })
CS0411:方法'System.Web.Mvc.Html.InputExtensions.TextBoxFor&lt; TModel,TProperty&gt;的类型参数(System.Web.Mvc.HtmlHelper&lt; TModel&gt;,System.Linq.Expressions.Expression&lt; System.Func&lt; ; TModel,TProperty&gt;&gt;,string)'无法从使用中推断出来。尝试明确指定类型参数。
答案 0 :(得分:2)
你的代码有两个问题,
IEnumerable<Abc.Service.Shared.Models.Company>
的一种类型。当您执行@ Html.TextBoxFor时,您正试图从模型中获取属性。在你的情况下,你试图从模型IEnumerable获取属性“名称”,这显然是行不通的。 我假设Name是您的Abc.Service.Shared.Models.Company
对象的属性,并且您正在尝试显示文本框列表。以下是您如何执行此操作的参考:
MVC with TextBoxFor having same id within loop
答案 1 :(得分:1)
这里有语法问题,
@Html.TextBoxFor(m >= m.Name , new { @id="CompanySearch" })
应该是
@Html.TextBoxFor(m=> m.Name , new { id = "CompanySearch" })
OR
@Html.TextBoxFor(m => m.Name, htmlAttributes: new { id = "CompanySearch" })
和Name
应在模型中声明为Public
,这应仅适用于单个对象,因为您使用模型类型为IEnumerable
,您应该使用循环来访问对象在Collection
答案 2 :(得分:1)
这里有语法问题,
@Html.TextBoxFor(m >= m.Name , new { @id="CompanySearch" })
应该是这样的
@Html.TextBoxFor(m => m.Name , new { @id="CompanySearch" })
但是如果您在视图中使用了{class 1}},则无法获取/使用名称属性 这就是为什么它给你错误
答案 3 :(得分:0)
请参阅您使用的语法
@Html.TextBoxFor(m >= m.Name , new { @id="CompanySearch" })
应该是这样的
@Html.TextBoxFor(m => m.Name , new { @id="CompanySearch" })
有关 MVC
的更多信息,请参阅此链接