-1

aspx WebForms からの切り替えを試みることを決定した MVC はまったく初めてです。MVC ビュー クリエーター ウィザードを使用してビューを作成し、厳密に型指定されたクラスと編集用の Scaffold テンプレートを選択しました。

私は次のものを手に入れました

@using (Html.BeginForm()) {
@Html.ValidationSummary(true)

<fieldset>
    <legend>Company</legend>

    @Html.HiddenFor(model => model.Id)

    <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.PhoneNumber)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.PhoneNumber)
        @Html.ValidationMessageFor(model => model.PhoneNumber)
    </div>        

    <p>
        <input type="submit" value="Save" />
    </p>
</fieldset>

}

コントローラーには、モデルの詳細を取得するために次のものがあります

[System.Web.Http.HttpGet]
    public ActionResult Edit(int id)
    {
        var uow = new BlogUow();
        var company = uow.Companies.GetById(id);
        return View(company);
    }

これは問題なく機能しますが、問題は、新しく入力した詳細を実際に保存する方法に困惑していることです。Web フォームがポストバックを処理する方法に頼りすぎていました。

4

2 に答える 2

1

コントローラーで編集のポスト アクションを記述する必要があります。

[System.Web.Http.HttpPost]
    public ActionResult Edit(Companies company)
    {
      var uow = new BlogUow();
      if (ModelState.IsValid)
      {
         uow.Entry(company).State = EntityState.Modified;
         return RedirectToAction("Index");
       }
        return View(company);
    }
于 2013-01-26T10:54:42.880 に答える
0

note 企業の過負荷

  [HttpPost]
            public ActionResult Edit(Companies company)
            {
              var uow = new BlogUow();
              if (ModelState.IsValid)
              {
                 Edit here
               }
                return View(company);
            }
于 2013-01-27T09:55:24.320 に答える