Asp.net mvc 3 使用ASP.net MVC的条件页面布局

Asp.net mvc 3 使用ASP.net MVC的条件页面布局,asp.net-mvc-3,Asp.net Mvc 3,如果请求是Ajax请求,我想用部分视图响应web请求。如果不是Ajax请求,我希望将部分内容包装在一个布局中,并提供一个完整的页面 最好的方法是什么 干杯,伊恩。像这样的事情应该行得通: if(request.IsAjaxRequest()) { return PartialView(); } else { return View(); } 您可以创建控制器方法的两个副本,一个用于HTTPGET,另一个用于HTTPPOST。如果所有AJAX都使用POST,那么就可以处理了

如果请求是Ajax请求,我想用部分视图响应web请求。如果不是Ajax请求,我希望将部分内容包装在一个布局中,并提供一个完整的页面

最好的方法是什么


干杯,伊恩。

像这样的事情应该行得通:

if(request.IsAjaxRequest()) {
    return PartialView();
} else {
    return View();
}

您可以创建控制器方法的两个副本,一个用于HTTPGET,另一个用于HTTPPOST。如果所有AJAX都使用POST,那么就可以处理了

    [HttpGet]
    public ActionResult Index()
    {
        // Do something
        return View();
    }

    [HttpPost]
    public PartialViewResult Index()
    {
        // Do something
        return PartialView();
    }

或者,在中,有一个[AjaxOnly]标记可以用于类似效果。

好的,但实际上我有多个分区,所以我需要一种动态添加布局的方法。有没有比这更优雅的方法??因此,您有多个控制器和/或操作方法,并且希望避免在每个控制器和/或操作方法中重复此代码?是的!我想一个过滤器就足够了。