nov*_*ice 2 asp.net asp.net-mvc razor
我有这个控制器:
public ActionResult MyController(string myString)
{
return View((object)myString);
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试将字符串传递给这样的视图:
@model string
@Html.EditorFor(m => m)
Run Code Online (Sandbox Code Playgroud)
我得到值不能为空错误。我怎样才能解决这个问题?谢谢。
首先,我建议更改您的 Action 方法名称。为什么你把它命名为 MyController。它应该是一个有意义的方法名称。
然后来解决你的问题。如果您的视图仅用于显示目的,而不用于表单发布,那么您可以将字符串绑定在 a 中viewbag并在您的视图中呈现。
例如,在您的操作方法中,
ViewBag.MyString = myString;
Run Code Online (Sandbox Code Playgroud)
而在你看来,
<p>@ViewBag.MyString</p>
Run Code Online (Sandbox Code Playgroud)
但是如果你想在视图中编辑你的字符串并在点击提交按钮后,它应该将值发布到服务器,然后创建一个view model,例如,
public class MyStringModel
{
public string MyString { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在您的操作方法中,
public ActionResult MyController(string myString)
{
MyStringModel = new MyStringModel();
MyStringModel.MyString = myString;
return View(MyStringModel)
}
Run Code Online (Sandbox Code Playgroud)
那么在你看来,
@model MyStringModel
@Html.EditorFor(m => m.MyString)
Run Code Online (Sandbox Code Playgroud)
看,您需要在您的视图中添加@HTML.BeginForm和 asubmit button到post back您的字符串数据。
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
10206 次 |
| 最近记录: |