0
有什麼方法可以將視圖文件名稱設置爲Action上的屬性?在ASP .NET中設置視圖名稱爲動作屬性MVC3
例如:
[ViewName("~/Views/CustomerInformation.cshtml")]
public ActionResult ViewCustomers()
{
//
}
目的是在運行時動態改變視圖文件。
有什麼方法可以將視圖文件名稱設置爲Action上的屬性?在ASP .NET中設置視圖名稱爲動作屬性MVC3
例如:
[ViewName("~/Views/CustomerInformation.cshtml")]
public ActionResult ViewCustomers()
{
//
}
目的是在運行時動態改變視圖文件。
當然,你可以覆蓋OnActionExecuted
方法並替代使用在動作過濾器中指定的原始視圖名稱:
public class ViewNameAttribute : ActionFilterAttribute
{
private readonly string _viewName;
public ViewNameAttribute(string viewName)
{
_viewName = viewName;
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
var result = filterContext.Result as ViewResultBase;
if (result != null)
{
result.ViewName = _viewName;
}
}
}
,然後你可以只返回一個虛擬視圖:
[ViewName("~/Views/CustomerInformation.cshtml")]
public ActionResult ViewCustomers()
{
return View();
}
但我不知道你的自定義操作過濾器的實際應用是什麼的時候,你可以直接寫:
public ActionResult ViewCustomers()
{
return View("~/Views/CustomerInformation.cshtml");
}
您似乎沒有將這個自定義操作過濾器帶到框架已經提供的許多值。
*目的是在運行時動態更改視圖文件*您可以詳細說明嗎? – VJAI