Aufruf einer controller-Methode aus .cshtml-Datei
Möchte ich nennen, eine Aktion habe ich in meiner controller-Klasse mit einem Html.ActionLink
aus meiner index
Seite, aber ich erhalte eine Fehlermeldung und kann nicht verstehen, warum.
Kann mir jemand helfen?
Den Test
Aktion in HomeController.cs
ist die Aktion, die ich nennen will.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using Microsoft.Exchange.WebServices.Data;
namespace ExchangeRazor.Controllers
{
public class HomeController : Controller
{
public ActionResult Index ()
{
var mvcName = typeof(Controller).Assembly.GetName ();
var isMono = Type.GetType ("Mono.Runtime") != null;
ViewData ["Version"] = mvcName.Version.Major + "." + mvcName.Version.Minor;
ViewData ["Runtime"] = isMono ? "Mono" : ".NET";
return View ();
}
public ActionResult Test()
{
ExchangeService service = new ExchangeService ();
//CREDENTIALS!//
service.Credentials = new WebCredentials ("*****@****.com", "******");
service.Url = new Uri ("https://outlook.office365.com/EWS/Exchange.asmx");
service.TraceEnabled = true;
service.TraceFlags = TraceFlags.All;
EmailMessage email = new EmailMessage (service);
email.ToRecipients.Add ("********");
email.Subject = "MacHallo";
email.Body = new MessageBody ("Melding fra mac exchange webservices API");
email.Send ();
return RedirectToAction("Index");
}
}
}
Index.cshtml:
<h2>Welcome to ASP.NET MVC @ViewData["Version"] on @ViewData["Runtime"]!</h2>
<button>@Html.ActionLink("Send", "Test")</button>
Edit:
System.MissingMethodException
Methode nicht gefunden: 'System.Web.Routing.RouteCollection.get_AppendTrailingSlash'.Beschreibung: HTTP 500.Fehler beim verarbeiten der Anforderung.
Details: Non-web-Ausnahme.
Ausnahme Herkunft (name der Anwendung oder Objekt): System.Web.Mvc.
- Welche Fehler sind Sie immer, und wo?
- Bearbeitet meine post.
- Welcher Teil des Codes? Xamarin ist nicht eine Sprache..
- Wo bekommst du diese Fehlermeldung?
- Ich denke, das ist, weil Sie verwenden, Xamarin, die bezogen auf Mono-statt .NET. Obwohl Mono laufen können, MVC 5, es scheint, dass es fehlt "get_AppendTrailingSlash" auf "RouteCollection". Daher uri Methoden der Stromerzeugung, wie zum Beispiel Html.ActionLink, Html.Form, etc, diesen Fehler auslösen. Mein Vorschlag ist entweder stick mit MVC 4, oder wechseln Sie zu .NET ganz.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man einfach Folgendes tun:
Bitte beachten Sie, müssen Sie die Karte entsprechend Ihrer
Test
controller.Dass würde automatisch auslösen, Ihre Inhalte als
form submit
vorausgesetzt du noch mehr Informationen zu unterbreiten. Das wäre dann rufen Sie Ihren controllerTest
. Dein anderer Ansatz wäre, die NutzungAjax
, die Sie könnte auch auslösen einepost
.Dont haben die Möglichkeit, zu versuchen im moment, aber Sie könnten versuchen, entfernen der [HttpPost].
Http
Verzögerung. Jeder controller korreliert bestimmten Zustand für die Seite, sprich:Get, Put, Delete, Post
Da Ihre Aktion
Test
produziert Nebenwirkungen, die ich empfehlen, mit einemPOST
statt einerGET
.Ändern Sie den link auf ein Formular mit einer Schaltfläche.
Dann dekorieren Sie die controller-Methode.