我有这个 Controller :
public ActionResult MyController(string myString)
{
return View((object)myString);
}
我正在尝试将字符串传递给这样的 View :
@model string
@Html.EditorFor(m => m)
我得到 value can't be null 错误。我怎样才能解决这个问题?谢谢。
最佳答案
首先,我建议更改您的 Action 方法名称。为什么你把它命名为 MyController。它应该是一个有意义的方法名。
那就来看看你的问题吧。如果您的 View 仅用于显示目的,而不是用于表单发布,那么您可以将您的字符串绑定(bind)到 viewbag
并在您的 View 中呈现。
例如,在您的操作方法中,
ViewBag.MyString = myString;
在你看来,
<p>@ViewBag.MyString</p>
但是如果你想在 View 中编辑你的字符串并且点击提交按钮后,它应该将值发布到服务器,然后创建一个 View 模型
,例如,
public class MyStringModel
{
public string MyString { get; set; }
}
在您的操作方法中,
public ActionResult MyController(string myString)
{
MyStringModel = new MyStringModel();
MyStringModel.MyString = myString;
return View(MyStringModel)
}
那么在你看来,
@model MyStringModel
@Html.EditorFor(m => m.MyString)
看,你需要在你的 View 中添加 @HTML.BeginForm
和一个 提交按钮
来回发
你的字符串数据。
希望对你有帮助。
关于asp.net - 如何在 ASP.NET MVC5 中将字符串从 Controller 传递到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43310313/