asp.net - 如何在 ASP.NET MVC5 中将字符串从 Controller 传递到 View

标签 asp.net asp.net-mvc razor

我有这个 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/

相关文章:

c# - 动态添加图像到asp.net c# gridview

c# - 使用动态参数从 C# 调用 javascript 方法

asp.net-mvc-3 - 在 razor 语句之间输出 HTML 文字会导致编译错误

unit-testing - 当 razor 布局中包含 @using 语句时,为什么 Nancy.Testing 会失败?

c# - 如何保存动态复选框更改

asp.net - "Unified Modelling Language"的简单解释,为什么它很重要?

asp.net - 没有足够的存储空间来完成此操作 - Azure 应用服务、Nuget.Server

c# - 在 javascript/razor 应用程序中按名称获取值

asp.net-mvc - .Net 4内存缓存类和用户 session

javascript - asp.net MVC 部分查看如何初始化 javascript