【发布时间】:2010-11-26 08:34:01
【问题描述】:
我试图弄清楚当通过 ajax 发出请求时,如何自动将视图呈现为部分(无母版页)。
我要避免的是在每个可以返回 ajax 的控制器方法中使用以下代码(因为这不是很干):
return Request.IsAjaxRequest() ? PartialView(model) : View(model)
我的第一个想法是在View 方法中将检查添加到我的基本控制器中。但是视图方法返回一个View(PartialView 不继承)。所以失败了。
我的下一个尝试是尝试在我的自定义剃须刀视图引擎中进行检查,如果它是一个 ajax 请求,则简单地删除母版页。但这也失败了。
我可以做的是创建一个新方法ViewOrPartial,其中包含检查并相应地返回结果。
你是怎么做到的?
【问题讨论】:
-
请注意:在一个有大量Ajax请求的项目中,我随机收到来自移动浏览器的Ajax请求,其中
Request.IsAjaxRequest()返回false!!!为了安全起见,我必须在我的请求中添加一个查询字符串参数(如partial=1)。如果没有它,它有时会将整个页面呈现为子元素。
标签: asp.net-mvc ajax asp.net-mvc-3 razor partial