Ziemlich neu bei MVC, unterstützender Code, der im Allgemeinen funktioniert, aber übermäßige Serverfehler erzeugt. Die Server-Fehler in Form von:Abrufen einer InvalidOperationException für den Zugriff auf die Ansicht beim Versuch, auf die Controller-Funktion zuzugreifen
Exception information:
Exception type: InvalidOperationException
Exception message: The view 'RenderProthyPDF' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Portal/RenderProthyPDF.aspx
~/Views/Portal/RenderProthyPDF.ascx
~/Views/Shared/RenderProthyPDF.aspx
~/Views/Shared/RenderProthyPDF.ascx
~/Views/Portal/RenderProthyPDF.cshtml
~/Views/Portal/RenderProthyPDF.vbhtml
~/Views/Shared/RenderProthyPDF.cshtml
~/Views/Shared/RenderProthyPDF.vbhtml
at System.Web.Mvc.ViewResult.FindView(ControllerContext context)
at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
jedoch ‚RenderProthyPDF ist keine Ansicht, sondern eine Funktion in einem Controller:
Beispiel Telefonvorwahl im cshtml:
<a class="document-link" href="javascript:markLastVisitedCaseDocument('@currentDocument.WorkingDocumentURL'); renderProthyPDF('@currentDocument.DktYear', '@currentDocument.DktSequence', '@currentDocument.WorkingDocumentURL');">
und
<a class="tile" style="height: 130px;" href="javascript:renderProthyPDF('@d.DktYear', '@d.DktSequence', '@d.URL');">
Die referenzierte javascript:
renderProthyPDF = function (rDktYear, rDktSequence, rURL) {
jQuery.ajax({
async: false,
type: "POST",
url: '@Url.Action("RenderProthyPDF", "Portal")',
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ Year : rDktYear,
Sequence : rDktSequence,
prothyDocumentURL : rURL
}),
success: function (data) {
alert(data);
},
failure: function (errMsg) {
alert(errMsg);
}
});
Und der C# -Code (In JPortal \ Controllers \ PortalController.cs):
public ActionResult RenderProthyPDF(string Year, string Sequence, string prothyDocumentURL, PortalCaseView viewmodel)
{
System.Web.HttpContext.Current.Session.Add("renderingPDF", "true");
System.Web.HttpContext.Current.Session.Add("renderingURL", prothyDocumentURL);
return View();
}
Was soll ich aus, diese Fehler zu verhindern tun erzeugt wird? Was läuft falsch?
Edit: Bin Angabe Verzeichnisse ich habe:
Die genannten Hyperlinks in den Teilansichten sind in JPortal \ Views \ Shared_.cshtml
Die Hauptansicht (der Javascript-Code) ist in: JPortal \ Views \ Portal \ Case.cshtml
die Action Funktion ist in JPortal \ Conrollers \ PortalController.cs
Nicht intuitiv für mich offensichtlich. Die RenderProtyPDF-Funktion wird aus mehreren Ansichten aufgerufen. Wie würde ich also wissen, in welcher Ansicht sie zurückgegeben wird? – crmauch
Sollte ich etwas anderes als ein View() Ergebnis zurückgeben? – crmauch
Überprüfen Sie Ihren Views-Ordner und sehen Sie, ob Sie eine View-Datei namens 'RenderProtyPDF' haben? – Rahul