在MVC中将默认值绑定到TextBoxFor不起作用

时间:2018-09-27 12:06:19

标签: asp.net-mvc viewbag

当我将默认值绑定到textboxfor时,但未按预期工作

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

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

我想将ViewBag.link值设置为textboxfor的默认值,但无法正常工作

3 个答案:

答案 0 :(得分:1)

如果使用模型,则不需要ViewBag,因为来自Model属性的值将绑定到TextBoxFor。 但是,如果仅使用TextBox,则必须通过2种方式完成

第一:

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

第二:

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

答案 1 :(得分:0)

您可以这样做:

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

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

答案 2 :(得分:0)

您用value进行的ViewBag属性分配是没有意义的,因为TextBoxFor已经绑定到您的视图模型,您可以简单地通过控制器操作来分配它,该控制器操作使用GET方法返回视图({ {1}})和相应的视图模型:

[HttpGet]

并按原样保留[HttpGet] public ActionResult ActionName() { var model = new ViewModel(); model.LinkAddress = "linkaddresshere"; return View(model); }

TextBoxFor

如果要从客户端分配文本框帮助程序的值,请在完全加载DOM对象后,使用Vanilla JS @Html.TextBoxFor(model => model.LinkAddress) jQuery.val()属性

value