2013-03-06 77 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”)%>;不工作,这将是伟大的。