2013-03-06 26 views
0

我是使用MVC的新手。在我的主人頁,我有以下代碼Html.RenderAction拋出一個TextWriter錯誤

var strAppThemes = <%= Html.RenderAction("PickupThemes", "Header") %>; 

和我的HeaderController定義如下:

public class HeaderController : Controller 
{ 
    public ViewResult Index() 
    { 
     return View(PickupThemes()); 
    } 

    public string PickupThemes() 
    { 
     return "Hello Lavanya Deepak!"; 
    } 
} 

,當我瀏覽其從該主頁使用報頭獲取aspx頁面,它引發以下錯誤

編譯器錯誤消息:CS1502:用於 最好重載方法匹配「System.IO.TextWriter.Write(炭)」具有一些無效參數

Line 18:var strAppThemes = <%= Html.RenderAction(「PickupThemes」,「Header」)%>;

我在哪裏犯錯?

+0

很難說「var strAppThemes」是什麼。它應該是C#代碼,還是你想輸出一些JavaScript? – rossisdead 2013-03-06 17:33:41

+0

var strAppThemes = line是一個JavaScript。 ASP風格括號內的是服務器端代碼。我想要將相同的值賦給javascript變量。 – 2013-03-06 22:59:38

+0

嘗試使用<%而不是<%=。在這裏看到更多的信息http://www.danielroot.info/2009/04/quick-aspnet-mvc-tip-double-check-html.html – rossisdead 2013-03-07 02:52:38

回答

0

返回類型實際上仍然是一個ActionResult,只是一個ActionResult of Content。如下所示。

public ActionResult PickupThemese() { 
    return Content("Hello Lavanya Deepak!"); 
} 
+0

號。它仍然呼喊與相同的錯誤信息。我的控制器定義如下: public ActionResult Index() { return(Content(「Hello Lavanya Deepak」)); } – 2013-03-06 17:21:28

+0

我現在處理了不同的路線。現在我不使用<%語法,而是將控制器/方法的請求ajaxing並捕獲輸出。 – 2013-03-06 18:34:28

+1

很高興我有某種幫助。 – 2013-03-06 19:06:01

0

我現在處理了不同的路線。現在我沒有使用<%的語法,而是對控制器/方法的請求進行ajaxing並捕獲輸出。

- 基於湯姆的建議。

不確定這是否是最好的方法,因爲它將播種額外的http請求。如果有人能說明爲什麼第18行:var strAppThemes = <%= Html.RenderAction(「PickupThemes」,「Header」)%>;不工作,這將是偉大的。