C# MVC 4-未触发HttpPost
MyC# MVC 4-未触发HttpPost,c#,.net,asp.net-mvc-4,http-post,C#,.net,Asp.net Mvc 4,Http Post,MyCreateController.cs: using System.Web.Mvc; using ClientDAL; using Services; using ShardingMvcDemo.Raven; using ShardingMvcDemo.ViewModels; namespace ShardingMvcDemo.Controllers { public class CreateController : Controller { //
CreateController.cs
:
using System.Web.Mvc;
using ClientDAL;
using Services;
using ShardingMvcDemo.Raven;
using ShardingMvcDemo.ViewModels;
namespace ShardingMvcDemo.Controllers
{
public class CreateController : Controller
{
//
// GET: /Create/
public ActionResult Index()
{
return View();
}
//
// POST: /Create/
[HttpPost]
public ActionResult Create(ClientViewModel client)
{
try
{
var ravenDbConnection = new RavenDbConnection(new RavenDbConnectionManager());
var service = new ClientService(ravenDbConnection);
service.AddClient(client.FirstName, client.LastName, client.Country);
return RedirectToAction("Index");
}
catch
{
return View();
}
}
}
}
我的Create/Index.cshtml
视图:
@model ShardingMvcDemo.ViewModels.ClientViewModel
@{
ViewBag.Title = "Create a client";
}
<h2>Create</h2>
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Client</legend>
<div class="editor-label">
@Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.LastName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.LastName)
@Html.ValidationMessageFor(model => model.LastName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Country)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Country)
@Html.ValidationMessageFor(model => model.Country)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
@model ShardingMvcDemo.ViewModels.ClientViewModel
@{
ViewBag.Title=“创建客户机”;
}
创造
@使用(Html.BeginForm()){
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
客户
@LabelFor(model=>model.FirstName)
@EditorFor(model=>model.FirstName)
@Html.ValidationMessageFor(model=>model.FirstName)
@LabelFor(model=>model.LastName)
@EditorFor(model=>model.LastName)
@Html.ValidationMessageFor(model=>model.LastName)
@LabelFor(model=>model.Country)
@EditorFor(model=>model.Country)
@Html.ValidationMessageFor(model=>model.Country)
}
@节脚本{
@Scripts.Render(“~/bundles/jqueryval”)
}
当我单击表单中的提交按钮时,甚至不会触发
[HttpPost]
方法(在调试模式下选中)。我做错了什么?它与您的视图名称不匹配。将其更改为:
public ActionResult Index(ClientViewModel client)
它与您的视图名称不匹配。将其更改为:
public ActionResult Index(ClientViewModel client)
也许您应该尝试在表单初始化中明确定义控制器和操作,如下所示:
@使用(Html.BeginForm(“创建”、“创建”){
...
在当前设置中,您试图发布到/create/index,而不是/create/create。也许您应该尝试在表单初始化中明确定义控制器和操作,如下所示:
@使用(Html.BeginForm(“创建”、“创建”){
...
在当前设置中,您试图发布到/create/index,而不是/create/create