У меня возникли проблемы с получением моего действия, чтобы найти и вернуть правильный вид.MVC не может найти правильный вид, когда модель является строкой
Это в Account
зоне, в AccountController
, и вид ConfirmAccount.cshtml.
Он принимает модель string
.
Я попытался это:
A) Я пытался просто проездом в модели как обычно, с именем вида, совпадающим с именем действия.
public ActionResult ConfirmAccount(string id)
{
return View(id);
}
Это не похоже на работу, поскольку модель представляет собой строку, она просто пыталась найти строку с именем id.
B) Поэтому я попытался указать имя вида, надеясь, что он найдет представление ConfirmAccount, и понять id - это модель.
public ActionResult ConfirmAccount(string id)
{
return View("ConfirmAccount", id);
}
Результаты этого одного смутило меня, он пытался найти следующее:
~/Районы/счета/Views/Account/ConfirmAccount.aspx ~/Районы/счета/Views/Account/ConfirmAccount.ascx ~/Areas/Account/Views/Shared/ConfirmAccount.aspx ~/Areas/Account/Views/Shared/ConfirmAccount.ascx ~/Views/Account/ConfirmAccount.aspx ~/Просмотры/Аккаунт/ConfirmAccount.ascx ~/Views/Shared/ConfirmAccount.aspx ~/Views/Shared/ConfirmAccount.ascx ~/Районы/счета/Views/Account/xNMf1HNl_2pLp-6MXpXl3g2If.master ~/Areas/счет/Просмотров/Shared/xNMf1HNl_2pLp-6MXpXl3g2If.master ~/Просмотров/данные/xNMf1HNl_2pLp-6MXpXl3g2If.master ~/Просмотров/Общие /xNMf1HNl_2pLp-6MXpXl3g2If.master ~/районы/счет/Views/Account/xNMf1HNl_2pLp-6MXpXl3g2If.cshtml ~/районы/счет/Views/Account/xNMf1HNl_2pLp-6MXpXl3g2If.vbhtml ~/Область/данные/Views/Shared/xNMf1HNl_2pLp -6MXpXl3g2If.cshtml ~/районы/счета/Views/Shared/xNMf1HNl_2pLp-6MXpXl3g2If.vbhtml ~/Views/Account/xNMf1HNl_2pLp-6MXpXl3g2If.cshtml ~/Views/счет/xNMf1HNl_2pLp-6MXpXl3g2If.vbhtml ~/Просмотров/Общие /xNMf1HNl_2pLp-6MXpXl3g2If.cshtml ~/Просмотры/S Харед/xNMf1HNl_2pLp-6MXpXl3g2If.vbhtml
Где он ищет ASPX/ASCX страниц было бы идеально, если он ищет cshtml страниц там, но по какой-то причине это не так и вместо этого пытается найти CS/vbshtml страниц по идентификатору. Кто-нибудь знает, почему это происходит?
C) Третья и единственная вещь, о которой я мог думать, заключалась также в том, чтобы указать имя контроллера.
public ActionResult ConfirmAccount(string id)
{
return View("ConfirmAccount", "Account", id);
}
~/Районы/счет/Views/Account/ConfirmAccount.aspx ~/Районы/счет/Views/Account/ConfirmAccount.ascx ~/Область/данные/Views/Shared/ConfirmAccount.aspx ~/Areas/Account/Views/Shared/ConfirmAccount.ascx ~/Views/Account/ConfirmAccount.aspx ~/Views/Account/ConfirmAccount.ascx ~/Views/Shared/ConfirmAccount.aspx ~/Просмотры/Общие/ConfirmAccount.ascx ~/Районы/Счет/Просмотры/Счет/Счет.мастер ~/Районы/Учетная запись/Просмотры/Общий/Account.master ~/Views/Account/Account.master ~/Views/Shared/Account.master ~/Районы/Учетная запись/Просмотры/Учетная запись/Account.cshtml ~ /Areas/Account/Views/Account/Account.vbhtml ~/Areas/Account/Views/Shared/Account.cshtml ~/Areas/Account/Views/Shared/Account.vbhtml ~/Views/Account/Account.cshtml ~/Views/запись/Account.vbhtml ~/Просмотров/Shared/Account.cshtml ~/Просмотров/Shared/Account.vbhtml
Это похоже на последней, где первые являются правильный путь если он искал cshtml, но по какой-то причине это не так, и я не понять почему. Где он ищет страницы cshtml, он ищет учетную запись вместо ConfirmAccount.
Как правильно вернуть представление ConfirmAccount.cshtml в сценарий, где моя модель является строкой?
Спасибо! Не мог придумать, как заставить его использовать объект, очень простое решение. – Kyle
Да, это поймало меня на страже в первый раз, когда я использовал строчную модель, загнал меня в орехи. –