使用 ASP.NET MVC 在视图的 EditorFor() 方法中显示 ViewBag 的值

Displaying the Value of a ViewBag in the EditorFor() method of a View using ASP.NET MVC

这可能是我的语法错误,但我无法使用 ViewBag.

为我的 EditorFor 设置默认值

我检查过 ViewBag.FirstName 中的值是否正确传递,没有问题。但是,该字段显示没有值。

我的说法是:

@Html.EditorFor(model => model.Person.FirstName, new { htmlAttributes = new { @class = "form-control" } ,  @Value = ViewBag.FirstName })

如有任何帮助,我们将不胜感激。
很抱歉我的问题很简单。

您真的应该以正常方式进行模型绑定:通过分配模型的值 属性。 ViewBag 不可维护且非强类型。

如果你真的确实出于某种原因需要ViewBag,只需将你的分配移动到你的htmlAttributes对象内的@Value,就像这样:

@Html.EditorFor(model => model.Person.FirstName, new { htmlAttributes = new { @class = "form-control", @Value = ViewBag.FirstName } })

我知道这是一个旧答案,感谢 johnnyRose 提供的正确答案。我只是想补充一点,我仍然无法获得与它一起传递的@value,这是因为@Value 是一个简单的案例 v=V.. 想分享我的无知,希望能帮助别人。 :)