如何将值绑定到MVC中的文本框

时间:2015-10-28 08:18:38

标签: asp.net-mvc model-view-controller textbox

当我想将模型中的值绑定到文本框时,我遇到了问题,这是我的MVC视图代码:

@Html.TextBox("SellerBroker", model => model.OutOfMarket.BuyerBroker.Name , new { @class = "control-label" })

我希望我的文本框有一个名称或'SellerBroker',它的值来自我的模型属性model => model.OutOfMarket.BuyerBroker.Name,HTML属性为class = "control-label"。但是,我收到以下错误:

  

无法将lambda表达式转换为'object'类型,因为它不是委托类型

2 个答案:

答案 0 :(得分:1)

@Html.TextBox()可用于生成具有初始值的文本框(单向绑定)。

如果要将文本框真正绑定到类属性(两种方式绑定),则应使用@Html.TextBoxFor()帮助器。此方法将lambda表达式作为参数,如示例中所用。

您可以在Html.Textbox VS Html.TextboxFor

找到有关TextBox帮助程序的更多详细信息

答案 1 :(得分:0)

Helper @Html.TextBox()不包含具有lambda参数的overloard。你应该使用没有像这样的lambda像@Stephen Muecke建议你:

@Html.TextBox("SellerBroker", Model.OutOfMarket.BuyerBroker.Name , new { @class = "control-label" })

如果你想使用lambda,你应该使用@Html.TextBoxFor()助手。但你应该改变这样的名字:

@Html.TextBoxFor(model => model.OutOfMarket.BuyerBroker.Name, new { Name = "SellerBroker", @class = "control-label"})