Недопустимые символы в пути при вызове представления индекса из моего контроллера
Я получаю ArgumentException при вызове действия index одного из моих контроллеров, и я не уверен, почему. Сообщение об ошибке следующее:
Ошибка сервера в приложении '/'
Нелегальные персонажи в пути.
[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);
}
2 ответа
Неоднозначность возникает из-за того, что вы используете 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
метод, который принимает строковый аргумент, представляющий имя представления, поэтому вы не можете выбросить в него все, что захотите => если это строка, это должно быть имя представления, и это представление должно существовать.
Я наконец нашел это. Это действительно смущающая опечатка мной. Я набрал код неправильно:
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"
Надеюсь, я сохраню пару часов отладки для кого-то еще, разместив это:(