C# 如何使用Razor Editor for Helper在from ViewBag中创建具有值的文本框

C# 如何使用Razor Editor for Helper在from ViewBag中创建具有值的文本框,c#,asp.net-mvc,razor,html-helper,viewbag,C#,Asp.net Mvc,Razor,Html Helper,Viewbag,我只想显示一个文本框编辑器字段,其中包含一个与ViewBag一起传递的值,例如如果ViewBag.Savings包含“6”: 我试过这样的方法: @Html.EditorFor(model => model.Value, ViewBag.Savings) @Html.ValidationMessageFor(model => model.Value) 我得到了编译器错误:“编译器错误消息:CS1973:'System.Web.Mvc.HtmlHelper'没有名为'EditorF

我只想显示一个文本框编辑器字段,其中包含一个与ViewBag一起传递的值,例如如果ViewBag.Savings包含“6”:

我试过这样的方法:

@Html.EditorFor(model => model.Value, ViewBag.Savings)
@Html.ValidationMessageFor(model => model.Value)
我得到了编译器错误:“编译器错误消息:CS1973:'System.Web.Mvc.HtmlHelper'没有名为'EditorFor'的适用方法,但似乎有一个同名的扩展方法。无法动态调度扩展方法。考虑在不使用扩展方法语法的情况下强制转换动态参数或调用扩展方法。
正确的语法是什么?

Html助手的
编辑器需要一个强类型对象,而ViewBag不是。如果您真的想使用ViewBag,请执行以下操作:

@Html.TextBox("savings", ViewBag.Savings)

我认为EditorFor需要一个模型->

@model Foo.Models.Savings
然后

对于ViewBag,您可以执行以下操作:

@Html.TextBox("Savings", (string)ViewBag.Savings)

谢谢,我只需要投出ViewBag。省钱!错误中有线索。为什么ViewBag.Savings需要转换为字符串?我认为ViewBags不需要强制转换。@JimBarton您得到的是“'Compiler Error Message:CS1973:'System.Web.Mvc.HtmlHelper'没有名为'EditorFor'”的适用方法仍然是错误的吗?
@Html.TextBox("Savings", (string)ViewBag.Savings)