Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 从我的控制器调用索引视图时路径中存在非法字符_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 3 从我的控制器调用索引视图时路径中存在非法字符

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,我不知道为什么。错误消息如下所示:

“/”应用程序中出现服务器错误

路径中存在非法字符

[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"