【发布时间】:2019-08-27 10:23:30
【问题描述】:
我无法进入控制器的 HttpPost 部分。
我创建了另一个控制器,但问题是一样的
我以前工作得很好
我添加了标签 [Route("CearSolicitud")] [HttpPost, ActionName("CearSolicitud")]
我还没有在路由部分添加任何东西
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
转到http://localhost:55935/Solicitudes 而不是http://localhost:55935/Solicitudes/CrearSolicitud
public class SolicitudesController : Controller
{
ApplicationDbContext db = new ApplicationDbContext();
// GET: Solicitudes
public ActionResult Index()
{
return View();
}
//Get
public ActionResult Solicitud()
{
return View();
}
//Post
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Solicitud(Solicitudes s)
{
s.Id = "e17cba68-0a0b-4d6e-abaf-8026cb91fcd1";
s.fk_tipo_transaccion = 3;
s.fk_estado_solicitud = 1;
db.Solicitudes.Add(s);
db.SaveChanges();
return View();
}
景色
@model HGRecursosHumanos4.Models.Solicitudes
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (@Html.BeginForm("CrearSolicitud", "Solicitudes", FormMethod.Post))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="container">
<div class="form-group col-md-5">
@Html.LabelFor(model => model.VacacionesDias, htmlAttributes: new { @class = "control-label col-md-4" })
<div class="col-md-3">
@Html.EditorFor(model => model.VacacionesDias, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.VacacionesDias, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group col-md-5">
@Html.LabelFor(model => model.FechaInicio, htmlAttributes: new { @class = "control-label col-md-3" })
<div class="col-md-5">
<input type="date" id="fechaInicio" name="fechaInicio" class="Filtros form-control input-sm" />
</div>
</div>
<div class="form-group col-md-2">
<div class="col-md-offset-2 col-md-3">
<input type="submit" value="Solicitar" class="btn btn-success" />
</div>
</div>
</div>
</div>
}
当我使用表单并点击提交按钮或应用程序再次转到索引或同一视图时
这就像 EF 破产之类的
我补充说,出现错误“CearSolicitud”视图或其主视图未找到,或者没有支持搜索位置的搜索引擎。我们在以下位置进行了搜索:
~/Views/Solicitudes/CrearSolicitud.aspx
~/Views/Solicitudes/CrearSolicitud.ascx
~/Views/Shared/CrearSolicitud.aspx
~/Views/Shared/CrearSolicitud.ascx
~/Views/Solicitudes/CrearSolicitud.cshtml
~/Views/Solicitudes/CrearSolicitud.vbhtml
~/Views/Shared/CrearSolicitud.cshtml
~/Views/Shared/CrearSolicitud.vbhtml
@Nemanja I certainly don´t have that view, if I use the same name on the post and no the get, the application goes to the get part again
【问题讨论】:
-
能看到这个action方法的return语句:CrearSolicitud吗?您是否尝试直接浏览此 URL:localhost:55935/Solicitudes/CrearSolicitud?您在调用哪个操作方法时呈现的视图?
-
我要编辑
-
用[HttpGet]装饰第一个动作,所以它不会接受post请求。现在使用相同的名称,请求将转到所需的操作。另外,你上面的这个视图出现在哪个动作“索引”上?
标签: c# asp.net-mvc controller routing