将默认值绑定到 MVC 中的文本框不起作用



>当我将默认值绑定到文本框时,但它没有按预期工作

@Html.TextBoxFor(model => model.LinkAddress, htmlAttributes: new { @Value = ViewBag.link })

ViewBag.link 是从控制器传递的值

我想将 ViewBag.link 值设置为文本框的默认值,但它没有按预期工作

如果使用 Model,则不需要 ViewBag,因为 Model 属性中的值将绑定到 TextBoxFor。 但是,如果您只使用文本框,则必须以两种方式执行此操作

第一:

@Html.TextBox("LinkAddress", (String)ViewBag.link)

第二:

<input type="text" value="@ViewBag.link" />

你可以做:

@Html.TextBoxFor(model => model.LinkAddress, new {  @Value = @ViewBag.link })

@Html.TextBox("LinkAddress", null, new { @Value = @ViewBag.link })

你用ViewBagvalue属性赋值是没有意义的,因为TextBoxFor已经绑定到你的视图模型,你可以简单地从控制器操作中分配它,该操作使用 GET 方法 ([HttpGet]( 返回视图和相应的视图模型:

[HttpGet]
public ActionResult ActionName()
{
var model = new ViewModel();
model.LinkAddress = "linkaddresshere";
return View(model);
}

并按原样保留TextBoxFor

@Html.TextBoxFor(model => model.LinkAddress)

如果要从客户端分配文本框帮助程序的值,请在DOM 对象完全加载后使用jQuery.val()valuevanilla JS 的属性:

// jQuery
$('#LinkAddress').val("linkaddresshere");
// vanilla JS
document.getElementById('LinkAddress').value = "linkaddresshere";

最新更新