>当我将默认值绑定到文本框时,但它没有按预期工作
@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 })
你用ViewBag
value
属性赋值是没有意义的,因为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()
或value
vanilla JS 的属性:
// jQuery
$('#LinkAddress').val("linkaddresshere");
// vanilla JS
document.getElementById('LinkAddress').value = "linkaddresshere";