In ASP.NET MVC mit Spark-Ansicht-Engine auf submisison Fehlerform, warum bekomme ich eine 404-Ressource nicht gefunden?

StackOverflow https://stackoverflow.com/questions/1768046

Frage

Meine Ansicht:

/ User / EditUserName / 2 / me

<viewdata model="EditUserNameViewData" />
<form action="~/User/EditUserName" method="post" class="span-15 last">
!{Html.TextBox("newUserName")}
<Submit id='"chooseNewName"' value='"Choose new name"' />
</form>

Controller Aktionen:

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult EditUserName(int id)
{
 EditUserNameViewData vd = new EditUserNameViewData();
 vd.ExistingName = _userRepository.Get(id).UserName;
 return View("EditUserName", vd);
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditUserName(string newUserName)
{
 try
 {
  // fails
 }
 catch(RulesException errors)
 {
  errors.AddModelStateErrors(ModelState, string.Empty);
  return View();
 }
}

die Rückansicht () scheint nicht zu arbeiten, wie es zu Umleitungen

/ User / EditUserName

und gibt mir einen 404-Fehler. WTF? Ich verwende xVal für die Validierung und alles auf diesem Zweck funktioniert einfach nicht bekommen es die vorherige Seite mit den Informationen der Benutzer Put displayed in die Box erneut anzuzeigen. Jeder weiß, was ich falsch mache? Das macht mich verrückt!

Bearbeiten

Ich bin mir nicht sicher, ob dies ist ein Fehler in Funken oder was zum Teufel los ist. Sobald ich eine EditUserName.aspx Seite hinzufügen Ich bin kein 404 Fehler mehr bekommen und es ist richtig funktioniert, indem Sie die Seite kein Problem reshowing ??? Wie zum Teufel laufen andere Menschen nicht in dieser Frage? Ich habe alles gelesen was ich finden konnte und ich habe nichts falsch sehen mit dem, was ich tue. Warum sollte es mit dem regulären Ansicht Motor arbeiten? Ich will so nicht nur für Benutzereingaben mit den anderen wechseln, aber ich fühle mich wie ich hier keine andere Wahl haben.

Ausblick:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>

<form action="/User/EditUserName/<%= ((EditUserNameViewData)ViewData.Model).User.Id %>/<%= ((EditUserNameViewData)ViewData.Model).User.UserName %>" method="post" class="span-15 last">
<input type="text" id="newUserName" name="newUserName" />
<input type="submit" id="chooseNewName" value="Choose new Name" />
</form>
War es hilfreich?

Lösung

Ich rufe Html.RenderAction in meiner Masterseite. Ich war „post“ meine Form ing, aber meine Aktionsmethode hatte einen [AcceptVerbs (HttpVerbs.Get)] -Attribut auf - dies zwingt ein 404-Fehler nicht gefunden und es war offensichtlich meine Schuld. Super froh, dass ich es herausgefunden, aber meine Güte, was für einen Schmerz.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top