Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net MVC 3通过ajax访问模型错误_.net_Ajax_Json_Asp.net Mvc 3 - Fatal编程技术网

.net MVC 3通过ajax访问模型错误

.net MVC 3通过ajax访问模型错误,.net,ajax,json,asp.net-mvc-3,.net,Ajax,Json,Asp.net Mvc 3,我正在开发一个相当大的MVC3Web应用程序。在过去的几年里,各种不同技能的程序员都在做这方面的工作,因此理解这一切是一个缓慢而令人沮丧的过程 我目前的主要问题是试图理解以前的工作人员使用以下代码到底在尝试什么: 以下是视图CreatePartial(尽管未用作局部视图) 此函数SetupCreateView可能是为每个特定字段设置json结果的函数!看一看!谢谢你。找到一些有趣的代码。 <%@ Control Language="C#" Inherits="System.Web.Mvc.

我正在开发一个相当大的MVC3Web应用程序。在过去的几年里,各种不同技能的程序员都在做这方面的工作,因此理解这一切是一个缓慢而令人沮丧的过程

我目前的主要问题是试图理解以前的工作人员使用以下代码到底在尝试什么:

以下是视图
CreatePartial
(尽管未用作局部视图)


此函数SetupCreateView可能是为每个特定字段设置json结果的函数!看一看!谢谢你。找到一些有趣的代码。
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<RetainedAvailability.ViewModels.CreateAccountViewModel>" %>
<script type="text/javascript">
    SetupCreateView();
    $(document).ready(function () { $('input:submit,button').button(); });
</script>
    <h2>Create a New Account</h2>
    <p>
        Use the form below to create a new account. 
    </p>
    <p>
        Passwords are required to be a minimum of <%:ViewData["PasswordLength"]%> characters in length.
    </p>

<form id="CreateForm" runat="server">
        <%:Html.ValidationSummary(true, "Account creation was unsuccessful. Please correct the errors and try again.")%>
        <div>
            <fieldset>
                <legend>Account Information</legend>

                <div class="editor-label">
                    <%:Html.LabelFor(m => m.User.UserName)%>
                </div>
                <div class="editor-field">
                    <%:Html.TextBoxFor(m => m.User.UserName)%>
                    <%:Html.ValidationMessageFor(m => m.User.UserName)%>
                </div>

                <%:Html.ValidationMessageFor(m => m.User.Email)%>
                <%:Html.HiddenFor(m => m.User.Email)%>

                <div class="editor-label">
                    <%:Html.LabelFor(m => m.User.Password)%>
                </div>
                <div class="editor-field">
                    <%:Html.PasswordFor(m => m.User.Password)%>
                    <%:Html.ValidationMessageFor(m => m.User.Password)%>
                </div>

                <div class="editor-label">
                    <%:Html.LabelFor(m => m.User.ConfirmPassword)%>
                </div>
                <div class="editor-field">
                    <%:Html.PasswordFor(m => m.User.ConfirmPassword)%>
                    <%:Html.ValidationMessageFor(m => m.User.ConfirmPassword)%>
                </div>

                <div class="editor-label">
                    <%:Html.LabelFor(m => m.User.Role)%>
                </div>
                <div class="editor-field">
                    <%:Html.DropDownListFor(m => m.User.Role, Model.Roles)%>
                    <%:Html.ValidationMessageFor(m => m.User.Role)%>
                </div>
                <p>
                    <input type="submit" value="Register" />
                </p>
            </fieldset>
        </div>
</form>
[HttpPost]
[Authorize(Roles = "Administrator,StationManager")]
public ActionResult CreatePartial(RegisterModel User)
{
    if (ModelState.IsValid)
    {
        // Attempt to register the user and get status
        MembershipCreateStatus createStatus = MembershipService.CreateUser(User.UserName, User.Password, User.Email);

        // If successful registration, update the db
        if (createStatus == MembershipCreateStatus.Success)
        {
            // Link role and user
            Roles.AddUserToRole(User.UserName, User.Role);
            // Link station and user
            _repository.LinkUserToStation(User.UserName, (Guid) Session["StationID"]);
            // Save tables
            _repository.SaveChanges();

            // Create success notification
            var res = new AjaxResponse<CrewMember>
            {
                Data = null,
                IsSuccess = true,
                GrowlNotification = "Created " + User.UserName
            };
            // Return notification
            return new JsonResult {Data = res, JsonRequestBehavior = JsonRequestBehavior.AllowGet};
        }
        else
        {
            ModelState.AddModelError("", AccountValidation.ErrorCodeToString(createStatus));
        }
    }

    // If we got this far, something failed, redisplay form
    ViewData["PasswordLength"] = MembershipService.MinPasswordLength;

    var Errors = ModelState.Where(e => e.Value.Errors.Any()).Select(ee => ee.Value.Errors.First().ErrorMessage).ToList();

    var res1 = new AjaxResponse<dynamic>
    {
        Data = null,
        IsSuccess = false,
        Errors =
            ModelState.Where(e => e.Value.Errors.Any()).Select(
                ee => ee.Value.Errors.First().ErrorMessage).ToList()
    };

    return new JsonResult {Data = res1, JsonRequestBehavior = JsonRequestBehavior.AllowGet};
}
    function ShowValidationErrors(data) {
        $('#CreateForm input[type=text]').removeClass("ui-state-error");
        $('#CreateForm label').css('font-weight', 'normal');
        $('.field-validation-error').remove();
        for (var i = 0; i < data.Errors.length; i++) {
            $('#CreateForm label[for=' + recordName + '_' + data.Errors[i].Target + '], #CreateForm label[for=' + data.Errors[i].Target + ']').css('font-weight', 'bold');
            //     $('#CreateForm #' + recordName + '_' + data.Errors[i].Target +', #CreateForm #' + data.Errors[i].Target).attr('class', 'input-validation-error');
            $('#CreateForm #' + recordName + '_' + data.Errors[i].Target + ', #CreateForm #' + data.Errors[i].Target).addClass("ui-state-error");
            $('<p class="field-validation-error">* ' + data.Errors[i].Message + '</p>').insertAfter('#CreateForm #' + recordName + '_' + data.Errors[i].Target);
            $('<p class="field-validation-error">* ' + data.Errors[i].Message + '</p>').insertAfter('#CreateForm #' + data.Errors[i].Target);
            $('.input-validation-error:first').focus();
        }
    }