Asp.Net MVC3剃刀提交调用方法
问题描述:
你好,我是新的我MVC中,我有一个视图Asp.Net MVC3剃刀提交调用方法
@model MeterProfileData.Core.Dto.CdapiDto
@{
ViewBag.Title = "Create";
Layout = "~/Views/SiteMaster.cshtml";
}
<h2>Create</h2>
@using (Html.BeginForm()) {
<fieldset>
<legend>Add new CDAPI</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Url)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Url)
@Html.ValidationMessageFor(model => model.Url)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "CdapiList")
</div>
和未来CONTROLER
public class CdapiController : Controller
{
//
// GET: /Cdapi/
public ActionResult CdapiList()
{
var cdapiList = new CdapiService().GetListCdapiServers();
return View(cdapiList);
}
[HttpGet]
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(CdapiDto dto)
{
new CdapiService().CreateCdapi(dto);
return RedirectToAction("CdapiList");
}
}
提交后总是先打电话方法和页面刷新。我做错了什么?并调用第二个方法做什么,发送给它从页面参数
总纲
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
</head>
<body>
<div>
</div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Test mvc</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link rel="stylesheet" href="/Content/style.css" type="text/css" media="screen, projection">
</link>
<script src="@Url.Content("~/Content/javascript/jquery-1.7.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-jtemplates.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div id="wrapper">
<div id="header">
<h3>
View Pages</h3>
<ul>
<li><a runat="server" href="/Register">Registers</a></li>
<li><a runat="server" href="/MeterProfile">Meter Profiles</a></li>
<li><a runat="server" href="/register/SupportedRegisters">Supported Registers </a></li>
<li><a runat="server" href="/logers/SupportedLogers">Supported Loggers </a></li>
<li><a runat="server" href="/Cdapi/CdapiList">CDAPI Servers </a></li>
</u>
</div>
<div id="content">
@RenderBody()
</div>
<div id="footer">
</div>
</div>
<div>
</div>
</form>
</body>
</html>
答
我不知道你想达到什么,但你需要告诉它的行动发布于:
@using (Html.BeginForm("Create", "Cdapi", FormMethod.Post))
答
您的总纲另一个form
标签开幕<body>
标签之后。删除那个表格,你应该很好。
+0
叶:(我是从Asp.Net项目复制主布局,并忘记了那里的形式。谢谢现在,所有的作品 – 2012-01-30 16:04:41
+1
没问题,我只知道这从自我经验:(如果它解决了你的问题,请选中标记为已回答。 – MisterIsaak 2012-01-30 16:10:53
你确定它没有调用第二个创建,然后重定向到CdapiList? – Shyju 2012-01-30 15:49:28