如何解决不能将类型'System.Web.Mvc.ViewResult'隐式转换为'字符串'

问题描述:

return View(viewModel);在Visual Studio的原因错误2008如何解决不能将类型'System.Web.Mvc.ViewResult'隐式转换为'字符串'

无法隐式转换类型“System.Web.Mvc.ViewResult”到“字符串”

public ActionResult Welcome(string name, int numTimes = 1) 
     { 
      var viewModel = new WelcomeViewModel 
      { 
       Message = "Hello " + name, 
       NumTimes = numTimes 
      }; 

      return View(viewModel); 
     } 

     public class WelcomeViewModel 
     { 
      public string Message { get; set; } 
      public int NumTimes { get; set; } 
     } 
+2

也许你可以告诉我们哪一行导致这个错误,而不是让我们猜测? – cdhowie 2010-12-20 02:47:17

+1

return View(viewModel); – MvcFriend 2010-12-20 02:49:33

+3

嗯......你确定'Welcome'是按照你的说明申报的吗?你可以粘贴包含'Welcome'的整个类定义吗? – cdhowie 2010-12-20 03:00:27

您可能需要追加的ToString()的方法调用任何你正在调用它,尽管这在大多数情况下不会返回预期结果。相反,我会做另一个欢迎方法返回一个字符串,并在该方法中做你需要的。

+6

谢谢。我发现我还没有返回一个ActionResult,所以导致错误,谢谢。 – MvcFriend 2010-12-20 03:43:35

+0

继我的第一本MVC教程之后,我认为这仍然是一个常见的错误。您应该将此标记为已解决并发布适当的答案。最后的评论(帮助我解决了这个问题)有点难以找到。 – 2014-02-24 20:48:35

+0

@CarlosGarcia错过的是,给定方法的返回类型应该是ActionResult而不是字符串。当人们按照教程并尝试实现将模型传递到视图的控制器时会导致此错误。 – 2016-12-01 17:20:11