错误:无法将lambda表达式转换为' string'因为它不是委托类型
当我尝试在mvc4中添加cshtml页面时,我收到此错误。 at line
客户名称:@ Html.TextBox(m => Model.CustomerName)
任何人都可以解释它的意义是什么以及它为什么会来到这里?
代码是
@model DataEntryMvcApplication.Models.Customer
@using (Html.BeginForm())
{
<p>Customer Name: @Html.TextBox(m => Model.CustomerName)</p>
<p>ID:@Html.TextBox(m=>Model.CustomerId)</p>
<input type="submit" name="Custtomer" />
}
这是模型类;
namespace DataEntryMvcApplication.Models
{
public class Customer
{
public string CustomerId { get; set; }
public string CustomerName { get; set; }
}
}
答案 0 :(得分:5)
你需要Html.TextBoxFor而不是Html.TextBox:
@model DataEntryMvcApplication.Models.Customer
@using (Html.BeginForm())
{
<p>Customer Name: @Html.TextBoxFor(m => m.CustomerName)</p>
<p>ID:@Html.TextBoxFor(m => m.CustomerId)</p>
}
两者之间的差异解释为here
答案 1 :(得分:1)
Model
,它是@Html.TextBox(...)
的参数。 m
表示Model
,您需要使用该变量来访问正确的属性,例如:
<p>Customer Name: @Html.TextBoxFor(m => m.CustomerName)</p>
<p>ID:@Html.TextBoxFor(m=>m.CustomerId)</p>
答案 2 :(得分:0)
试试这个,
@model DataEntryMvcApplication.Models.Customer
@using (Html.BeginForm())
{
<p>Customer Name: @Html.TextBox(m => m.CustomerName)</p>
<p>ID:@Html.TextBox(m=>m.CustomerId)</p>
<input type="submit" name="Custtomer" />
}
答案 3 :(得分:0)
花了很多年才试图解决这个问题。恢复旧页面并逐个进行更改后,导致问题的行显示为:
<img src="~/images/Captcha/@ViewBag("CaptchaName")" />
我认为它一定不喜欢试图访问视图包?无论如何,评论这个解决了这个问题。