Asp.net mvc 3 从我的控制器调用索引视图时路径中存在非法字符
我在调用一个控制器的索引操作时收到ArgumentException,我不知道为什么。错误消息如下所示: “/”应用程序中出现服务器错误 路径中存在非法字符Asp.net mvc 3 从我的控制器调用索引视图时路径中存在非法字符,asp.net-mvc-3,Asp.net Mvc 3,我在调用一个控制器的索引操作时收到ArgumentException,我不知道为什么。错误消息如下所示: “/”应用程序中出现服务器错误 路径中存在非法字符 [ArgumentException: Illegal characters in path.] System.IO.Path.CheckInvalidPathChars(String path) +126 System.IO.Path.Combine(String path1, String path2) +38 我不知道为什么会这
[ArgumentException: Illegal characters in path.]
System.IO.Path.CheckInvalidPathChars(String path) +126
System.IO.Path.Combine(String path1, String path2) +38
我不知道为什么会这样。以下是来自控制器的代码:
public ActionResult Index()
{
var glaccounts = db.GLAccounts.ToString();
return View(glaccounts);
}
这种歧义是因为您使用
string
作为模型类型。这种歧义可以这样解决:
public ActionResult Index()
{
var glaccounts = db.GLAccounts.ToString();
return View((object)glaccounts);
}
或:
或:
请注意cast to对象以选择适当的方法重载,因为已经有一个
视图方法,该方法接受一个表示视图名称的字符串参数,因此您不能随意抛出它=>如果它是字符串,它必须是视图的名称,并且该视图必须存在。我最终找到了它。这真是一个让我尴尬的打字错误。我输入了错误的代码:
public ActionResult Index()
{
var glaccounts = db.GLAccounts.ToString();
return View(glaccounts);
}
而不是:
public ActionResult Index()
{
var glaccounts = db.GLAccounts.ToList();
return View(glaccounts);
}
然后框架想要加载一个视图文件,如下所示:
"~/Views/GLAccount/SELECT \r\n[Extent1].[Id] AS [Id], \r\n[Extent1].[OrgDefinitionId] AS [OrgDefinitionId], \r\n[Extent1].[GLAccountId] AS
[GLAccountId], \r\n[Extent1].[Name] AS [Name], \r\n[Extent1].[StartDate] AS [StartDate],
\r\n[Extent1].[EndDate] AS [EndDate]\r\nFROM [GLAccounts] AS [Extent1].aspx"
希望通过发布以下内容,我可以为其他人节省几个小时的调试时间:(谢谢你的回答。我本应该发布这个问题,而不是花几个小时来拆卸我的MVC项目和添加MVC源代码。非常感谢!这是我在ASP.NET MVC中发现的最荒谬的事情之一。为什么我们不能将字符串作为模型传递给视图?@Saeednamati,这与ASP.NET MVC无关。我t通常是.NET中方法重载的工作方式
方法将对象作为其模型。因此,从技术上讲,由于.NET中的所有对象都直接或间接地从对象继承而来,因此您可以将字符串作为模型传递。那么,与方法重载有什么关系?此外,此错误意味着向服务器发送了错误的请求,错误的URL。可能是ASP.NET MVC,发送一个内部请求(比如URL重写)来获取视图。我想知道我们违反了什么法律
public ActionResult Index()
{
var glaccounts = db.GLAccounts.ToList();
return View(glaccounts);
}
"~/Views/GLAccount/SELECT \r\n[Extent1].[Id] AS [Id], \r\n[Extent1].[OrgDefinitionId] AS [OrgDefinitionId], \r\n[Extent1].[GLAccountId] AS
[GLAccountId], \r\n[Extent1].[Name] AS [Name], \r\n[Extent1].[StartDate] AS [StartDate],
\r\n[Extent1].[EndDate] AS [EndDate]\r\nFROM [GLAccounts] AS [Extent1].aspx"