2

Asp.Net MVCを初めて使用しますが、部分ビューの投稿でデータを更新する方法がわかりません。GETと部分ビューでのデータの表示に問題はありません。

親ページのpostメソッドの部分ビューデータのPOSTコードをどこに配置するかわかりませんか?または部分ビューのpostメソッド?

以下のコードを実行すると、送信時にこのメッセージが表示されます。

パブリックアクションメソッド「ScoreRelease」がコントローラー「Registration.Web.Controllers.AgreementsController」で見つかりませんでした。」}

最初のページの読み込み時にコントローラーが検出されますが、return View( "Review");を呼び出したときには検出されません。postメソッドで。

「レビュー」ページから呼び出されたParialView

 @{Html.RenderAction("ScoreRelease", "Agreements");}

ScoreReleaseパーシャルビュー

@model Registration.Web.Models.ReviewModel.ReleaseScore
@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)

    
    <div class='group' id='data_release'>
        <h4>
            Data Release
        </h4>
        <p>
            Do you wish to release your scores?
        </p>
        <ul class='input_group'>
            <li>
                @Html.RadioButtonFor(model => model.ReleaseScoreIndicator, true)
                <label>
                    Yes
                </label>
            </li>
            <li>
                @Html.RadioButtonFor(model => model.ReleaseScoreIndicator, false)
                <label>
                    No
                </label>
            </li>
        </ul>
          <input type="submit" value="Save"  />
    </div>

   
}

コントローラーのレビュー

    public ActionResult Review()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Review(ReviewModel.ReleaseScore model)
    {
        var agmtsService = new AgreementsService();
        agmtsService.UpdateReleaseScoreIndicator(model.ReleaseScoreIndicator);

        return View("Review");

    }

    [HttpGet]
    public ActionResult ScoreRelease()
    {
        var agmtsService = new AgreementsService();
        bool scoreRelease = agmtsService.GetReleaseScoreIndicator();

        var vm = new ReviewModel.ReleaseScore();
        vm.ReleaseScoreIndicator = scoreRelease;

        return PartialView(vm);
    }
4

2 に答える 2

1

パラメータを指定して Html.BeginForm を使用します。

@using (Html.BeginForm("Action", "Controller", FormMethod.Post)) 
于 2012-08-06T19:17:14.127 に答える
0

Post メソッドを Partial View に配置する必要があります。Html.BeginForm()または のいずれかの方法で行うことができますAjax.BeginForm。この部分ビューをポップアップ ウィンドウに表示する場合は、Ajax として使用することをお勧めします。ビューに配置するアクションが何であれ[httppost]、コントローラーのタグで同じメソッド名を作成する必要があります。

于 2012-08-06T20:32:49.437 に答える