2011-11-10 69 views
11

我建立一個MVC3應用程序爲我的動態網狀類,並試圖呈現一個部分,我得到以下錯誤:ASP.NET MVC3 @ Html.RenderPartial拋出CS1502錯誤

CS1502:最好重載方法匹配 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' 有一些無效參數

現在,我正在執行的代碼是這樣的:

<div> 
    <h2>Shipping Address</h2> 
    @Html.RenderPartial("_AddressPartial"); 
</div> 

現在,我已經搜索了這個,從我所看到的,答案都是針對舊版本的MVC,並使用了<%>風格的語法,並得到System.IO錯誤,而不是我得到的System.Web錯誤。我確實遵循了他們的建議,並嘗試使用和不使用分號,這並沒有什麼區別,因爲我每次都得到了YSOD。有任何想法嗎?

+0

是一直Web.Config中以任何方式修改? –

+0

Web.Config中只修改一個數據庫連接字符串,併爲我的信用卡處理器的API密鑰,否則是當我創建項目 – berwyn

回答

26

這可能只是因爲RenderPartial不會返回任何東西。嘗試要麼:

@Html.Partial("_AddressPartial") 

@{ Html.RenderPartial("_AddressPartial"); } 
+2

使用'@ {Html.RenderPartial(「_ AddressPartial」)產生的一個; }'版本工作!萬分感謝! – berwyn

6

注意的RenderPartial不返回任何值(就像方法的RenderAction),它在所述請求寫入的輸出。而部分(就像Action方法)返回MvcHtmlString的值。
SO @Html ......不得不返回一些價值,同時@ {...一些代碼...}不必。
在你的情況,如果你想使用的RenderPartial使用這樣的:

@{Html.RenderPartial("_AddressPartial");} 

但是,爲什麼不使用的部分方法,你可以使用這樣的:

@Html.Partial("_AddressPartial")