Недопустимые символы в пути при вызове индексного представления с моего контроллера
Я получаю исключение 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);
}
Ответы
Ответ 1
Неопределенность возникает из-за того, что вы используете string
как тип модели. Эта двусмысленность может быть решена следующим образом:
public ActionResult Index()
{
var glaccounts = db.GLAccounts.ToString();
return View((object)glaccounts);
}
или
public ActionResult Index()
{
object glaccounts = db.GLAccounts.ToString();
return View(glaccounts);
}
или
public ActionResult Index()
{
var glaccounts = db.GLAccounts.ToString();
return View("Index", glaccounts);
}
Обратите внимание на приведение объекта к объекту, чтобы выбрать надлежащую перегрузку метода, поскольку уже существует метод View
, который принимает строковый аргумент, который представляет имя представления, поэтому вы не можете бросить все, что хотите, = > если это строка, которая должна быть это имя представления, и это представление должно существовать.
Ответ 2
Я нашел его наконец. Это действительно неудобная опечатка. Я ошибся код:
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"
Надеюсь, я сэкономлю пару часов отладки для кого-то другого, разместив это: (