如何让MVC3调用具有不同名称的视图?

时间:2011-08-01 06:33:25

标签: c# asp.net-mvc asp.net-mvc-3

我的控制器中有以下内容:

    public ActionResult Tests()
    {
    }

    public ActionResult Test()
    { 
    }

我希望在我返回时转到Test.cshtml视图。有人可以告诉我这是否可行。我知道测试一个默认情况下会去Test.cshtml但测试怎么样?如何将其指向Test.cshtml?

或者我应该将它们保存为两个视图并使用RenderPartial吗?如果我这样做,那么如何将我的模型传递给RenderPartial视图?

谢谢,

4 个答案:

答案 0 :(得分:2)

返回时提供视图名称

看来你还没有真正检查出方法重载。从控制器操作返回时,several possible overloads会返回ViewResult个结果。其中一个允许您提供视图名称:

public ActionResult Tests()
{
    ...
    // provide the model too if you need to
    return View("Test", model);
}

public ActionResult Test()
{ 
    ...
    // provide the model too if you need to
    return View("Test", model);
}

Html.RenderPartial也有重载

Html.RenderPartial也是如此,您可以在调用时提供模型。检查其扩展方法here

我建议您查看文档,因为您将了解更多。

答案 1 :(得分:2)

View的重载允许您明确指定要使用的视图。

public ActionResult Tests()
{
  return View("Test");
 }

 public ActionResult Test()
 { 
   return View("Test");
 }

答案 2 :(得分:1)

使用this重载

return View("Test");

尽管有调用操作

,这将返回名为“Test”的视图

答案 3 :(得分:0)

是的,只需指定视图名称:

return View("Test");