En ASP.NET MVC con la chispa del motor Ver el error de forma Submisison por que tengo un recurso 404 no encontrado?

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

Pregunta

Mi opinión:

/ usuario / 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>

acciones del controlador:

[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();
 }
}

No parece el retorno Ver () para trabajar, ya que vuelve a dirigir a

/ usuario / EditUserName

y me da un error 404. WTF? Estoy usando XVal para la validación y todo en que las obras finales simplemente no puede conseguir que se vuelva a mostrar la página anterior con la información que el usuario ponga en muestra en el cuadro. Alguien sabe lo que estoy haciendo mal? Esto me está volviendo loco!

Editar

No estoy seguro si esto es un error en Spark o qué diablos está pasando. Tan pronto como se agrego una página EditUserName.aspx ahora no recibo un error 404 más y que funciona correctamente, por reshowing la página no hay problema ??? ¿Cómo diablos se las otras personas no toparse con este tema? He leído todo lo que pude encontrar y yo no veo nada de malo en lo que estoy haciendo. ¿Por qué sería trabajar con el motor de vista normal? Yo lo que no quiero volver a utilizar el otro sólo para la entrada del usuario, pero me siento como si tuviera otra opción aquí.

Ver:

<%@ 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>
¿Fue útil?

Solución

Me estaba llamando Html.RenderAction dentro de mi página maestra. Yo era "post" ing mi forma, pero mi método de acción tenía un atributo [AcceptVerbs (HttpVerbs.Get)] en él - esto estaba forzando No se ha encontrado un error 404 y era obviamente mi culpa. Súper contenta lo he descubierto, pero GeeZ lo que es un dolor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top