Hat jemand dieses Problem gesehen? Ich bin ein ASP.NET MVC-Neuling. Ich habe eine ASP.NET MVC 3 Website, die .aspx und .ascx Ansichten verwendet. In der gesamten Website verwende ich return View() oder return View(viewName) in meinen Controller-Methoden, die auf die entsprechende aspx/ascx-Ansicht verweist. In meinem AccountController (modifiziert, um DotNetOpenAuth zu verwenden) verfolge ich jedoch denselben Ansatz, aber das MVC-Framework sucht nicht nach aspx- oder ascx-Views. Stattdessen sucht es im Pfad nach .cshtml- oder .vbhtml-Ansichten (ich nehme an, die Razor-Engine). Warum sucht es nicht einfach nach aspx- und ascx-Ansichten wie der Rest meiner Website? Controller-Methode folgt:
public ActionResult Authenticate()
{
var response = openid.GetResponse();
var statusMessage = "";
if (response == null)
{
Identifier id;
//make sure your users openid_identifier is valid.
if (Identifier.TryParse(Request.Form["openid_identifier"], out id))
{
try
{
//request openid_identifier
return openid.CreateRequest(Request.Form["openid_identifier"])
.RedirectingResponse.AsActionResult();
}
catch (ProtocolException ex)
{
statusMessage = ex.Message;
return View("LogOn", statusMessage);
}
}
else
{
statusMessage = "Invalid identifier";
return View("LogOn", statusMessage);
}
}
else
{
//check the response status
switch (response.Status)
{
//success status
case AuthenticationStatus.Authenticated:
Session["FriendlyIdentifier"] = response.FriendlyIdentifierForDisplay;
FormsAuthentication.SetAuthCookie(response.ClaimedIdentifier, false);
//TODO: response.ClaimedIdentifier, to login or create new account
return RedirectToAction("Index", "Home");
case AuthenticationStatus.Canceled:
statusMessage = "Canceled at provider";
return View("LogOn", statusMessage);
case AuthenticationStatus.Failed:
statusMessage = response.Exception.Message;
return View("LogOn", statusMessage);
}
}
return View("LogOn");
}
Fehlerdetails folgen:
Die Ansicht 'LogOn' oder ihr Master wurde nicht gefunden oder keine View Engine unterstützt die gesuchten Orte. Die folgenden Orte wurden durchsucht: ~/Views/Account/Cancled bei provider.master ~/Views/Shared/Cancled bei provider.master ~/Views/Konto/LogOn.cshtml ~/Views/Konto/Anmelden.vbhtml ~/Views/Freigegeben/LogOn.cshtml ~/Views/Gemeinsam/LogOn.vbhtml ~/Views/Konto/Abgebrochen bei provider.cshtml ~/Views/Konto/Gekündigt bei provider.vbhtml ~/Views/Shared/Cancled at provider.cshtml ~/Views/Freigegeben/Abgebrochen bei provider.vbhtml
Beschreibung: Eine unbehandelte Ausnahme trat während der Ausführung der aktuellen Web-Anfrage. Bitte überprüfen Sie den Stack-Trace für weitere Informationen über den Fehler und seinen Ursprung im dem Code.
E System.InvalidOperationException: Die Ansicht 'LogOn' oder ihr Master wurde nicht gefunden oder keine View Engine unterstützt die gesuchten Orte. Die folgenden Orte wurden durchsucht: [ ] Anbieter.Master ~/Views/Freigegeben/Abgebrochen bei provider.master ~/Views/Konto/LogOn.cshtml ~/Views/Konto/Anmelden.vbhtml ~/Views/Freigegeben/LogOn.cshtml ~/Views/Gemeinsam/LogOn.vbhtml ~/Views/Konto/Abgebrochen bei provider.cshtml ~/Views/Konto/Gekündigt bei provider.vbhtml ~/Views/Shared/Cancled at provider.cshtml ~/Views/Freigegeben/Abgebrochen bei provider.vbhtml
Fehlerquelle:
Eine unbehandelte Ausnahme wurde während der Ausführung der aktuellen Web-Anfrage erzeugt. Informationen über den Ursprung und Ort der Ausnahme können mit Hilfe der Ausnahme identifiziert werden Stack Trace unten.
Stack Trace:
[InvalidOperationException: Die Ansicht 'LogOn' oder dessen Master wurde nicht gefunden oder keine View-Engine unterstützt die gesuchten Standorte. Die folgenden Orte [ ] ~/Views/Account/Cancled bei provider.master ~/Views/Shared/Cancled bei provider.master ~/Views/Account/LogOn.cshtml ~/Views/Konto/Anmelden.vbhtml ~/Views/Freigegeben/LogOn.cshtml ~/Views/Gemeinsam/LogOn.vbhtml ~/Views/Account/Cancled bei provider.cshtml ~/Views/Konto/Gekündigt bei provider.vbhtml ~/Views/Shared/Cancled at provider.cshtml ~/Views/Freigegeben/Abgebrochen bei provider.vbhtml]
System.Web.Mvc.ViewResult.FindView(ControllerContext Kontext) +315050
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext Kontext) +129
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +13
System.Web.Mvc.<>c_ AnzeigeKlasse1c.b _19() +23 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func1 continuation) +260 System.Web.Mvc.<>c__DisplayClass1e.<InvokeActionResultWithFilters>b__1b() +19 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList
1 ActionResult actionResult) +177
System.Web.Mvc.ControllerA controllerContext, String actionName) +343 System.Web.Mvc.Controller.ExecuteCore() +116 System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10
System.Web.Mvc.<>c_ AnzeigeKlasseb.b _5() +37 System.Web.Mvc.Async.<>c_ AnzeigeKlasse1.b _0() +21 System.Web.Mvc.Async.<>c_ _AnzeigeKlasse81.<BeginSynchronous>b__7(IAsyncResult _) +12 System.Web.Mvc.Async.WrappedAsyncResult
1.Ende() +62 System.Web.Mvc.<>c _DisplayClasse.b\ d() +50 System.Web.Mvc.SecurityUtil.b _0(Aktion f) +7
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Aktion action) +22
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8841105 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184
Danke Shan