在 Html.Editor(技术上是 EditorExtensions.Editor)中有一个带有
签名的重载public static MvcHtmlString Editor(
this HtmlHelper html,
string expression,
Object additionalViewData
)
您应该如何使用 additionalViewData? MSDN 文档根本不清楚。
我的第一个想法是:
@Html.Editor("quijibo", new { quijibo = "homer simpson"})
但是这不起作用,所以我现在不知所措。
编辑: 将问题修改为 How do you directly load a value from Object additionalViewData in Html.Editor?我想要一个放在 additionalViewData 中的值用作该编辑器的数据值。
最佳答案
@Html.Editor("quijibo", new { quijibo = "homer simpson" })
在相应的编辑器模板中,您可以从 ViewData 获取值:
@ViewData["quijibo"]
或 ViewBag,如果您愿意:
@ViewBag.quijibo
完整示例:
型号:
public class MyViewModel
{
public string Name { get; set; }
}
Controller :
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyViewModel
{
Name = "abc"
};
return View(model);
}
}
查看:
@Html.Editor("Name", new { foo = "bar" })
在被调用的编辑器模板中(~/Views/Shared/string.cshtml
):
@model string
<span>@Model</span>
<span>@ViewData["foo"]</span>
我个人建议您使用采用 lambda 表达式的强类型助手 Html.EditorFor
而不是 Html.Editor
。
关于c# - 如何在 Html.Editor 中直接加载 Object additionalViewData 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5538944/