0

「レビュー」ページにポストバックするときは、モデルの状態を確認し、結果に基づいてページを再表示するか、続行します。私には2つの問題があります。

検証に失敗すると、ページの元のgetで正常にロードされた部分ビューでハングアップします。

編集:これは、[HttpGet]属性がパーシャルビューのメソッドに適用されていることが原因でした。属性を削除し、パーシャルを再調整しました。

パーシャルをコメントアウトすると、ページ全体がCSSスタイルなしで表示されます。すべてテキストが白黒です。 編集:ページにスタイルがないという問題がまだあります

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

        var vm = new ReviewModel {ReleaseScoreIndicator = scoreRelease};

        return View(vm);
    }




    [HttpPost]
    public ActionResult Review(ReviewModel model)
    {

        if(!ModelState.IsValid)
        {
            return View(model);`**This is displaying the view w/o head section and no css**`
        }

        return RedirectToAction("CheckOut", "Financial");
    }

編集:

モデルを見る

パブリッククラスReviewModel{

    public bool? ReleaseScoreIndicator { get; set; }


    // Terms & Conditions
    [RequiredToBeTrue(ErrorMessage = "Eligibility Checkbox must be checked.")]
    public bool TermsEligibility { get; set; }

    [RequiredToBeTrue(ErrorMessage = "True and Accurate Checkbox must be checked.")]
    public bool TermsAccurate { get; set; }

    [RequiredToBeTrue(ErrorMessage = "Identity Release Checkbox must be checked.")]
    public bool TermsIdentityRelease { get; set; }

    [RequiredToBeTrue(ErrorMessage = "Score Release Checkbox must be checked.")]
    public bool TermsScoreRelease { get; set; }

}

public class RequiredToBeTrueAttribute:RequiredAttribute {public override bool IsValid(object value){return value!= null &&(bool)value; }}

意見

@model Registration.Web.Models.ReviewModel

@{
    ViewBag.DisableNavigation = true;
}
<script type="text/javascript">
    $(document).ready(function () {
        $('.open_review').toggle(function() {
            $(this).text('Done').parents('.review_section').addClass('open_for_review').find('.review_content').slideDown('fast');
            return false;
        }, function() {
            $(this).text('Review').parents('.review_section').removeClass('open_for_review').find('.review_content').slideUp('fast');
            return false;
        });


    });



</script>

<div class='section module'>
          <h2>
            Please Review Your Application
          </h2>
          <p>
            Remember that your application fee is
            <strong>
              not refundable.
            </strong>
            Review your information below and make corrections before submitting.
          </p>
          <div class='review_section'>
            <a class="button open_review" href="#">Review</a>
            <h4>
              Identification
            </h4>
            @{Html.RenderAction("Review", "PersonalInformation");}
          </div>
          <div class='review_section'>
            <a class="button open_review" href="#">Review</a>
            <h4>
              Education
            </h4>
            @{Html.RenderAction("Review", "MedicalEducation");}   /////hangs here         
          </div>
          <div class='review_section'>
            <a class="button open_review" href="#">Review</a>                              
                 @{Html.RenderAction("Review", "PostGraduate");}////then hangs here
            </div>
          </div>
          <div class='actions' id='terms_and_conditions'>






@using (Html.BeginForm("Review", "Agreements", FormMethod.Post))
{

    //"reviewForm","Agreements", FormMethod.Post

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



    </div>











              <div class='group' id='terms'>
                  <h4>
                      Terms &amp; Conditions

                  </h4>
                  @Html.ValidationSummary(false)

              <table>
                <tbody>
                  <tr>
                      <th>
                          @Html.CheckBoxFor(x => x.TermsEligibility)  
                         @* @Html.CheckBox("terms_eligibility")*@

                      </th>
                    <td>
                      <label for='terms_eligibility'>
                        I currently meet all of the
                        <a href="" target="_blank"> requirements</a>
                        and have read the
                        <a href="" target="_blank">Information</a>
                      </label>
                    </td>
                  </tr>
                  <tr>
                      <th>
                          @Html.CheckBoxFor(x => x.TermsAccurate) 
                        @*  @Html.CheckBox("terms_accurate")*@

                      </th>
                    <td>
                      <label for='terms_accurate'>
                        The information I've provided is true and accurate
                      </label>
                    </td>
                  </tr>
                  <tr>
                      <th>
                           @Html.CheckBoxFor(x => x.TermsIdentityRelease)  
                         @* @Html.CheckBox("terms_identity_release")*@

                      </th>
                    <td>
                      <label for='terms_identity_release'>
                        I authorize the release
                      </label>
                    </td>
                  </tr>
                  <tr>
                      <th>
                          @Html.CheckBoxFor(x => x.TermsScoreRelease) 
                          @*@Html.CheckBox("terms_score_release")*@

                      </th>
                    <td>
                      <label for='terms_score_release'>
                        I agree 
                      </label>
                    </td>
                  </tr>
                </tbody>
              </table>
            </div>
              <div class='actions'>


                            <input type="submit" value="Go To Checkout" class="button" />




                  <a class="button" onclick="getForMasterPage('@Url.Action("CheckOut", "Financial")', null);">BYPASS</a>
              </div>

} </div>
4

1 に答える 1

1

投稿からの復帰時にReleaseScoreIndicatorを設定する必要がありますか?最初のGETに設定されているように見えますが、後続のGETには設定されていません。ビューはそのプロパティを使用しますか?

于 2012-08-07T19:02:43.107 に答える