兩者都可以輸出一個Partial視圖;其區別如下:
1. Partial有返回值(MvcHtmlString);RenderPartial沒有返回值(Void)。

1
//
PartialExtensions.Partial 方法 (HtmlHelper, String)
2 public static MvcHtmlString Partial(
3 this HtmlHelper htmlHelper,
4 string partialViewName
5 )
6
7 // RenderPartialExtensions.RenderPartial 方法 (HtmlHelper, String)
8 public static void RenderPartial(
9 this HtmlHelper htmlHelper,
10 string partialViewName
11 )
2 public static MvcHtmlString Partial(
3 this HtmlHelper htmlHelper,
4 string partialViewName
5 )
6
7 // RenderPartialExtensions.RenderPartial 方法 (HtmlHelper, String)
8 public static void RenderPartial(
9 this HtmlHelper htmlHelper,
10 string partialViewName
11 )
2. Partial輸出到臨時變量StringWriter ;RenderPartial輸出到HtmlHelper.ViewContext.Writer上(即直接輸出到Response)。

public
static MvcHtmlString Partial(
this HtmlHelper htmlHelper,
string partialViewName)
{
return htmlHelper.Partial(partialViewName, null, htmlHelper.ViewData);
}
public static MvcHtmlString Partial( this HtmlHelper htmlHelper, string partialViewName, object model, ViewDataDictionary viewData)
{
using (StringWriter writer = new StringWriter(CultureInfo.CurrentCulture))
{
htmlHelper.RenderPartialInternal(partialViewName, viewData, model, writer, ViewEngines.Engines);
return MvcHtmlString.Create(writer.ToString());
}
}
{
return htmlHelper.Partial(partialViewName, null, htmlHelper.ViewData);
}
public static MvcHtmlString Partial( this HtmlHelper htmlHelper, string partialViewName, object model, ViewDataDictionary viewData)
{
using (StringWriter writer = new StringWriter(CultureInfo.CurrentCulture))
{
htmlHelper.RenderPartialInternal(partialViewName, viewData, model, writer, ViewEngines.Engines);
return MvcHtmlString.Create(writer.ToString());
}
}

1
public
static
void RenderPartial(
this HtmlHelper htmlHelper,
string partialViewName)
2 {
3 htmlHelper.RenderPartialInternal(partialViewName, htmlHelper.ViewData, null, htmlHelper.ViewContext.Writer, ViewEngines.Engines);
4 }
2 {
3 htmlHelper.RenderPartialInternal(partialViewName, htmlHelper.ViewData, null, htmlHelper.ViewContext.Writer, ViewEngines.Engines);
4 }
3. 在Razor視圖中語法不一樣:

1 @Html.Partial(
"
PartialViewName
")
2
3 @{ Html.RenderPartial( " PartialViewName "); }
2
3 @{ Html.RenderPartial( " PartialViewName "); }