ASP.Net MVC返回基于条件的部分视图
本文关键字:条件 视图 MVC Net 返回 于条件 ASP | 更新日期: 2023-09-27 18:25:21
这可能是一个非常愚蠢的问题,但我是MVC的新手,我只是不知道如何做到这一点。我需要根据变量状态返回不同的视图。当我试图在条件语句中返回部分视图时,该方法会给出不返回值的错误。这是我想做的一个想法。
if (status == 1)
{
return PartialView("partial1", model);
}
if (status == 2)
{
return PartialView("partial2", model);
}
if (status == 3)
{
return PartialView("partial3", model);
}
您需要一个else或一个最终返回语句。
如果在状态不等于1、2或3的情况下调用函数,该怎么办?
例如,假设status = 4
:
public ActionResult SomeMethod(int status) //Assume 4 is passed in
{
if (status == 1)
{
return PartialView("partial1", model);
}
if (status == 2)
{
return PartialView("partial2", model);
}
if (status == 3)
{
return PartialView("partial3", model);
}
//We got here, but haven't returned anything!
}
我们需要函数来返回东西。我不确定什么对您的应用程序最有意义,但需要这样的东西。
public ActionResult SomeMethod(int status) //Assume 4 is passed in
{
if (status == 1)
{
return PartialView("partial1", model);
}
if (status == 2)
{
return PartialView("partial2", model);
}
if (status == 3)
{
return PartialView("partial3", model);
}
//We got here, so return some default or fallback Partial.
return PartialView("SomeFallbackPartial", model);
}
如果一个控制器操作做得太多,您可能会出现设计错误,但您可以通过以下方法之一解决问题。。。
添加默认值:
if (status == 1)
{
return PartialView("partial1", model);
}
if (status == 2)
{
return PartialView("partial2", model);
}
if (status == 3)
{
return PartialView("partial3", model);
}
return PartialView("default");
抛出异常:
if (status == 1)
{
return PartialView("partial1", model);
}
if (status == 2)
{
return PartialView("partial2", model);
}
if (status == 3)
{
return PartialView("partial3", model);
}
throw new CustomException("Invalid status");
由于它们都共享一个模型,也许您可以使用映射根据状态获取视图名称(或者如果它确实与状态相同,则将其连接)。
var viewName = string.format("partial{0}", status);
return PartialView(viewName, model);