我正在写一个页面在MVC3,并有几个地方,我想要求一个页面ajax和网址栏。使控制器操作'“返回partialview()”自动链接到“_partialview.cshtml”在asp.net mvc3
如果请求是一个完整的页面请求,我希望操作呈现“Example.cshtml”这是一个完整的视图。 但请求是一个ajax请求我只想呈现“_Example.cshtml”这是一个局部视图。
我的代码是
if (Request.IsAjaxRequest())
{
return PartialView("_Example");
}
return View();
但是由于MVC3是所有关于公约和这一切都是可重新配置的,我希望能写
if (Request.IsAjaxRequest())
{
return PartialView();
}
return View();
,仍然加载“_Example.cshtml “如果这是一个局部的观点。 我的名字是“_Something.cshtml”,所有我的部分视图无论如何不会更干净,如果我只能调用PartialView(); ?
请告诉我,这是可能的。并告诉我如何。
编辑:
我还是希望能够使partialviews从不同的意见,所以切换母版就足够了只有少数病例。
我愿做类似超载的默认路径寻找partialviews,如:
PartialViewLocationFormats = new[] {
"~/Views/{1}/_{0}.ascx",
};
但这种影响PartialView(“示例”)使用_Example.cshtml过,这是不可取的。
编辑:
我尝试过的另一件事是重载控制器的PartialView()和PartialView(对象模型)方法,但它们不能被重写无论是我能找到一个合适的方式找到其行动被他们称为从。
你可以通过例子来解释你想要达到的效果,而且看起来你只能在局部视图中卡住。也许有更好的出路。 – CallMeLaNN 2011-03-16 17:31:43