據我所知,部分景觀被用於渲染視圖的一部分。但我不明白return View()
和return PartialView()
之間有什麼區別,你什麼時候使用每一個。什麼是「返回查看()」之間的區別「返回PartialView()」
38
A
回答
26
返回View()
- 呈現一個.aspx | .cshtml網頁
- 呈現正常的.aspx頁面,也可以包含部分視圖
返回PartialView()
- 呈現.ascx | .cshtml控件
- 呈現HTML來可以通過AJAX或非AJAX請求請求一樣瀏覽器中的片段。
查看()返回ViewResult
PartialView()返回PartialViewResult
既繼承ViewResultBase
的差異是由以下Reflector描述...
public class PartialViewResult : ViewResultBase
{
// Methods
protected override ViewEngineResult FindView(ControllerContext context)
{
ViewEngineResult result = base.ViewEngineCollection.FindPartialView(context, base.ViewName);
if (result.View != null)
{
return result;
}
StringBuilder builder = new StringBuilder();
foreach (string str in result.SearchedLocations)
{
builder.AppendLine();
builder.Append(str);
}
throw new InvalidOperationException(string.Format(CultureInfo.CurrentUICulture, MvcResources.Common_PartialViewNotFound, new object[] { base.ViewName, builder }));
}
}
public class ViewResult : ViewResultBase
{
// Fields
private string _masterName;
// Methods
protected override ViewEngineResult FindView(ControllerContext context)
{
ViewEngineResult result = base.ViewEngineCollection.FindView(context, base.ViewName, this.MasterName);
if (result.View != null)
{
return result;
}
StringBuilder builder = new StringBuilder();
foreach (string str in result.SearchedLocations)
{
builder.AppendLine();
builder.Append(str);
}
throw new InvalidOperationException(string.Format(CultureInfo.CurrentUICulture, MvcResources.Common_ViewNotFound, new object[] { base.ViewName, builder }));
}
// Properties
public string MasterName
{
get
{
return (this._masterName ?? string.Empty);
}
set
{
this._masterName = value;
}
}
}
1
控制器動作通常返回執行當使用AJAX一個PartialView,以及由局部視圖表示的頁區域的更新。使用部分視圖的正常方法只需在主視圖中調用Html.RenderPartial
即可。
14
回報PartialView()返回HTML代碼片段,它是用來與ViewUserControls - ASCX文件。使用「return PartialView()」的主要優點是當你不想渲染HTML,BODY,HEAD標籤等所有其他HTML頁面的東西時。
一個由我最常用的用途是,當我想渲染只是根據請求的動作是否是AJAX調用用戶控件。
所以我有一個叫MyControl.aspx查看,我使用的RenderPartial HTML幫助,我有一個名爲MyControl.ascx局部視圖,在那裏我做了實際的渲染。
我這兩個之間在我的控制器行動這樣的切換:
if (Request.IsAjaxRequest())
return PartialView("MyControl"); // this renders MyControl.ascx
return View(); // this render MyControl.aspx
相關問題
- 1. 返回IHttpActionResult和返回對象之間的區別
- 2. 「函數返回」和「函數無返回」之間的區別
- 3. TCL過程中返回和返回1之間的區別
- 4. return;返回true並返回false - 有什麼區別?
- 5. 在Spring MVC中返回ModelAndView和返回String有什麼區別?
- 6. 返回與否有什麼區別?
- 7. e.preventDefault();有什麼區別?並返回false?
- 8. Django-piston:返回查詢集和列表之間的區別?
- 9. PHP if/else返回和回顯之間的區別?
- 10. MVC C#在返回PartialView之前從控制器返回文件
- 11. 返回View :: make()和返回Response :: view()之間有什麼不同?
- 12. 從綁定返回和使用函數的結果之間有什麼區別()
- 13. GlobalAlloc和GlobalLock之間在JNA中的返回值有什麼區別
- 14. 「def ... = arg.foreach.println()」和「def ... = arg.foreach.println」之間的返回類型有什麼區別?
- 15. 返回指針的這些函數調用之間有什麼區別?
- 16. 有什麼返回`HttpResponseNotFound`,提高了`Http404`在Django之間的區別?
- 17. 獲取枚舉或返回枚舉數的區別是什麼?
- 18. 什麼是console.log和返回在javascript中的區別
- 19. 這裏返回true或false的區別是什麼?
- 20. 當您返回View時應該是PartialView會發生什麼?
- 21. 控制器不返回PartialView?
- 22. MVC ActionLink不返回PartialView
- 23. 返回PartialView時ApplicationUser爲空
- 24. 爲什麼向前看是時間戳記的返回匹配
- 25. mysql_insert_id()返回的是什麼?
- 26. 控制器返回PartialView覆蓋整個查看
- 27. PartialView()不返回查看帶有下劃線
- 28. 來自IIFE的對象與返回對象之間的區別
- 29. JQuery .length()和.NET之間的區別返回的長度爲
- 30. collection.find與回調和不回調之間有什麼區別?
我會downvote如果我可以,但是ReturnView()和View()與呈現「.aspx」或「.ascx」視圖完全沒有關係。更正 - 看起來它確實可以處理使用約定提取的視圖(即:控制器呈現相同名稱的視圖)。無論如何,您可以將.aspx和.ascx視圖同時提供給PartialView(),而不會出現任何問題。 – kdawg 2010-05-17 18:28:30
'View()'返回一個'ViewResult',PartialView()返回一個'PartialViewResult'。對這兩種方法自行運行Reflector,並確定在決定渲染什麼時應使用哪一個。 'PartialViewResult'和'ViewResult'是兩個不同的類,它們都是從'ViewResultBase'繼承的,它們是爲了不同的目的而設計的!部分視圖沒有MasterPages(視圖可以),你真的要使用View()來呈現「somecontrol.ascx」嗎... – xandercoded 2010-05-17 19:12:40