2

私は雇用記録のリストを持っています。部分ビューを使用して同じページから雇用記録を追加することもできます。

これは、レコード リストの部分的なビューと、モーダル ポップアップに表示される新しいレコードを追加するための部分的なビューを持つ、employment.cshtml です。

<h2>Employment Records</h2>

  @{Html.RenderPartial("_employmentlist", Model);}                              

<p>
<a href="#regModal" class="btn btn_b" rel="fancyReg">Add New Record</a>
</p>

<div style="display:none">
    <div id="regModal"> 
              @{Html.RenderPartial("_AddEmployment", new ViewModelEmploymentRecord());}     

                        </div>
                    </div>

部分ビュー _AddEmployment.cshtml を次に示します。

@using (Html.BeginForm("AddEmployment, Application"))
{                   
@Html.ValidationSummary(true)

<div class="formEl_a">

<fieldset>
    <legend></legend>

     <div class="sepH_b">

            <div class="editor-label">
                @Html.LabelFor(model => model.employerName)
            </div>

         etc....etc....

</fieldset>

</div>
  <p>
        <input type="submit" class="btn btn_d" value="Add New Record" />

    </p>


}

ここに私のアプリケーションコントローラーがあります:

[HttpPost]
    public ActionResult AddEmployment(ViewModelEmploymentRecord model)
    {
        try
        {
            if (ModelState.IsValid)
            {

                Add Data.....
            }
        }
        catch
        {

        }

        return View(model);
    }

コンパイルすると、フォーム用に次の html が生成されます。

<form action="/Application/Employment?Length=26" method="post"> 

それは長さの文字列をもたらしますか?代わりに雇用コントローラーを呼び出していますか?

すべてが明確であることを願っています....

質問 1:部分ビュー内から送信ボタンをクリックすると、データを追加するために指定されたコントローラーに移動しません。どこが間違っているのか誰にもわかりますか?

質問 2:これが機能するようになったら、新しいレコードで雇用リストを更新したいと思います....これは正しい方法ですか? ヒントをいただければ幸いです。

4

4 に答える 4

9

回答 1: まずこれを試して、それがあなたのコントローラーにヒットするかどうか教えてください。

 @using (Html.BeginForm("AddEmployment", "Application", FormMethod.Post))

回答 2: 雇用リストを更新するには、モデルをデータベースに保存してから、雇用リストを同じページまたは別のページに表示して、DB からリストまたはテーブルにデータを呼び出す必要があると思います。表示されます。

編集: フォーム属性が適用されていないようです。あなたの Employment.cshtml では、私は個人的に @Html ステートメントの周りに { } を使用していません。エラーは、私が次のように書いた場合にのみ発生するため、上記のことを行ってはなりません。

 @using (Html.BeginForm("AddEmployment, Application", FormMethod.Post))

これらの閉じ引用符がないことが問題の原因です。

于 2012-04-24T15:27:17.973 に答える
0

あなたは@using (Html.BeginForm("AddEmployment, Application"))これがやろうとしていることを入れました"AddEmployment, Application"私はあなたが意味したと思うと呼ばれるアクションを呼び出すことです@using (Html.BeginForm("AddEmployment", "Application"))

于 2012-04-24T16:00:24.960 に答える