回发问题

时间:2012-08-07 18:51:53

标签: c# asp.net-mvc-3

当我在“评论”页面上回发时,我会检查模型状态,并根据结果重新显示页面或继续。我有两个问题。

如果验证失败,它会挂起部分视图,因为它在页面的原始get上加载了很好。

编辑:这是由于[HttpGet]属性应用于partials视图的方法引起的。我删除了属性,并且部分重新出现。

如果我注释掉部分,则整个页面显示没有任何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(对象值)     {         返回值!= null&& (布尔)值;     } }

查看

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

1 个答案:

答案 0 :(得分:1)

您是否需要在发布的回报中设置ReleaseScoreIndicator?看起来它被设置为初始GET,但是后续的,它没有被设置。视图是否使用该属性?