首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET MVC ViewResult vs PartialViewResult

ASP.NET MVC ViewResult vs PartialViewResult
EN

Stack Overflow用户
提问于 2009-01-23 13:58:00
回答 3查看 48.4K关注 0票数 58

名为ViewResult的控制器结果和PartialViewResult之间的区别是什么?更重要的是,什么时候使用PartialViewResult

EN

回答 3

Stack Overflow用户

发布于 2009-01-23 14:19:59

PartialViewResult用于渲染局部视图(fx.仅仅是一个用户控件)。这对于AJAX的东西来说是相当不错的。

代码语言:javascript
复制
<script type="text/javascript">
    $.get(
        "/MyController/MyAction",
        null,
        function (data) { $("#target").html(data) }
     );
</script>

和动作

代码语言:javascript
复制
public ActionResult MyAction() 
{
    return PartialView("SomeView");
}

其中SomeView是一个MVC用户控件,例如:

代码语言:javascript
复制
<div>
   <%= DateTime.Now.ToString() %>
</div>
票数 55
EN

Stack Overflow用户

发布于 2011-03-23 09:22:20

在某些情况下,您可能希望将视图分解为几个小组件。我现在正在使用的一个用例是,我有一个多语言站点,我希望使用AJAX原则重新加载内容。

通常,对于非多语言站点,我要做的是创建另一个ActionResult来返回随新参数变化的ViewModel。我喜欢使用我称为JsonpResult的自定义ActionResult。问题在于我的标签不在我的数据库中,而是在资源文件中。因此,我需要做的是以某种方式将我的资源文件数据合并到ViewModel中。

一旦数据进入管道,我的AJAX回调就会使用Javascript (我使用jQuery)处理ViewModel响应返回HTML页面的连接。

这肯定是可行的,但这会成为一个可维护性的问题。现在,我不仅需要维护原始的ASP.NET视图,还需要维护一组处理AJAXian行为的脚本。如果你需要你的站点SEO,那么你真的需要确保服务器端和客户端的行为都是一样的。

这就是局部视图对我起作用的地方。我所做的是“拉出”大量重载发生的逻辑数据部分。PartialView的好处是你可以把你的ViewData和模型传递给PartialView。如果你的PartialView是针对你的ViewModel强类型的,你可以让智能感知来帮助连接PartialView。

现在,对于AJAX调用,我需要做的就是将响应写回单个DIV,而不是单独处理数据点。这确实意味着会有更多的内容从管道中流出。然而,权衡的是代码更容易阅读和维护。

票数 7
EN

Stack Overflow用户

发布于 2016-05-14 21:16:53

其中一个主要区别是PartialViewResult不使用_ViewStart.cshtml。_ViewStart.cshtml文件中的代码在渲染开始时在视图中的任何代码之前执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/472963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档