Asp.Net MVC3 Razor отправить вызов метода - PullRequest
1 голос
/ 30 января 2012

Здравствуйте, я новенький, я имею mvc, у меня есть следующий вид

@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>

и следующий контроллер

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");
    }
  }

Послеsubmit всегда вызывает первый метод и страница обновляетсяЧто я делаю не так?и что делать для вызова второго метода и отправки ему параметров со страницы

Master Layout

<!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>

Ответы [ 2 ]

3 голосов
/ 30 января 2012

У вас есть еще один тег form в вашем мастер-макете сразу после открывающего тега <body>.Удалите эту форму, и тогда вам будет хорошо.

0 голосов
/ 30 января 2012

Я не уверен, чего вы хотите достичь, но вы должны указать ему, на какое действие публиковать:

@using (Html.BeginForm("Create", "Cdapi", FormMethod.Post))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...