如何将String作为模型传递给MVC 5中的View?

时间:2014-08-26 21:36:52

标签: c# asp.net-mvc

我的动作定义如下:

    public ActionResult TempOutput(string model)
    {
        return View(model);
    }

而且,我的观点定义如下:

@model String

@{
    ViewBag.Title = "TempOutput";
}

<h2>TempOutput</h2>

<p>@Model</p>

然后,在一个地方,我有一个这样的回复声明:

return RedirectToAction("TempOutput", "SEO", new { model = "Tester text" });

关键是,当我到达TempOutput视图时,我收到一条错误消息,说“未找到视图'测试人员文本'或其主人,或者没有视图引擎支持搜索到的位置。”但我想在我的视图中打印字符串的值。我怎样才能实现它?

2 个答案:

答案 0 :(得分:10)

您正在调用View的不同覆盖:

View(string viewName);

您想要致电View(string viewName, string masterName, object model),如下所示:

return View(null, null, model);

您还可以为视图名称指定显式值(即“TempOutput”)。

或者,您可以通过将“模型”投射到View(object model)来强制选择object覆盖:

return View((object)model);

答案 1 :(得分:0)

如果我没记错,如果你必须使用RedirectToAction,你可以传递这样的模型数据:

TempData["model"] = "Tester text";
return RedirectToAction("TempOutput", "SEO");

有关TempData的更多信息,请点击此处。