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

How to bind a value to a text box in MVC

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

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

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

Cannot convert lambda expression to type 'object' because it is not a delegate type

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

如果您想真正将文本框绑定到您的 class 属性(两种绑定方式),您应该使用 @Html.TextBoxFor() 助手。此方法将 lambda 表达式作为参数,如您的示例中所用。

您可以在以下位置找到有关 TextBox 助手的更多详细信息:Html.Textbox VS Html.TextboxFor

Helper @Html.TextBox() 不包含具有 lambda 参数的超载。你应该像这样在没有 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"})