據我所知,部分景觀被用於渲染視圖的一部分。但我不明白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. 返回View()和返回base.View()之間有什麼區別?
- 2. Onkeydown返回false和返回super.onkeydown()之間有什麼區別?
- 3. 操作返回PartialView而不是查看
- 4. 在Python中,通過和返回之間的區別是什麼
- 5. 返回(「abcd」)和返回「abcd」之間的區別?
- 6. 返回IHttpActionResult和返回對象之間的區別
- 7. 「函數返回」和「函數無返回」之間的區別
- 8. TCL過程中返回和返回1之間的區別
- 9. 應用於矩陣的fft/fft2的返回值之間的區別是什麼?
- 10. 是什麼(模型),並返回RedirectToAction返回查看的區別(「視圖名」,模型)
- 11. 在Spring MVC中返回ModelAndView和返回String有什麼區別?
- 12. return;返回true並返回false - 有什麼區別?
- 13. 返回與否有什麼區別?
- 14. e.preventDefault();有什麼區別?並返回false?
- 15. Django-piston:返回查詢集和列表之間的區別?
- 16. PHP if/else返回和回顯之間的區別?
- 17. 回顯json_encode和在AJAX中返回它之間的區別
- 18. MVC C#在返回PartialView之前從控制器返回文件
- 19. 返回View :: make()和返回Response :: view()之間有什麼不同?
- 20. 彙編代碼中返回值的函數和不返回值的函數之間有什麼區別?
- 21. Mathematica規則和GraphEdit返回的對象之間有什麼區別?
- 22. 有什麼返回`HttpResponseNotFound`,提高了`Http404`在Django之間的區別?
- 23. GlobalAlloc和GlobalLock之間在JNA中的返回值有什麼區別
- 24. 返回指針的這些函數調用之間有什麼區別?
- 25. 從綁定返回和使用函數的結果之間有什麼區別()
- 26. 「def ... = arg.foreach.println()」和「def ... = arg.foreach.println」之間的返回類型有什麼區別?
- 27. Laravel返回迴應::查看
- 28. 返回的時間格式是什麼?
- 29. 什麼是console.log和返回在javascript中的區別
- 30. 這裏返回true或false的區別是什麼?
我會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