加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.net MVC3 – 使用Ajax回发的Razor Views和Pa

发布时间:2020-12-15 23:12:57 所属栏目:asp.Net 来源:网络整理
导读:我一直非常失败,让这个工作! 在一个视图… @model Project.Models.Account.ForgotPasswordModel@{ ViewBag.Title = "Forgot Password";}h2ForgotPassword/h2span id='@ViewBag.ReplaceID' @Html.Partial("_ForgotPasswordUserNameAjax",ViewData.Model)/spa
我一直非常失败,让这个工作!

在一个视图…

@model Project.Models.Account.ForgotPasswordModel

@{
    ViewBag.Title = "Forgot Password";
}

<h2>ForgotPassword</h2>

<span id='@ViewBag.ReplaceID'>
    @Html.Partial("_ForgotPasswordUserNameAjax",ViewData.Model)
</span>

我渲染这个partialView …

@model Project.Models.Account.ForgotPasswordModel

@{
    this.Layout = null;
}

@using (Ajax.BeginForm("ForgotPassword",new AjaxOptions() { UpdateTargetId = ViewBag.ReplaceID,InsertionMode = InsertionMode.InsertAfter }))
{
    @Html.ValidationSummary(true,"Forgot Password was unsuccessful. Please correct the errors and try again.")
    <div id="login" class="box">
            <fieldset>
            <h2>Account Information</h2>
            <div class="inside">
                <div class="editor-label">
                    @Html.LabelFor(m => m.Username)
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(m => m.Username)
                    <br />
                    @Html.ValidationMessageFor(m => m.Username)
                    <br />
                </div>

                <p>
                    <input type="submit" value='Submit' />
                </p>
            </div>
        </fieldset>
    </div>   
}

而这个控制器的动作…

[HttpPost]
        public PartialViewResult ForgotPassword(ForgotPasswordModel model)
        {

            if (String.IsNullOrEmpty(model.Username))
            {
                ModelState.AddModelError("Username",ForgotPasswordStrings.USER_NAME_REQUIRED);
            }
            else
            {
                bool isGood = false;
                model.Question = this._security.ValidateUserNameGetSecurityQuestion(model.Username,out isGood);

                if (!isGood)
                {
                    ModelState.AddModelError("Username",ForgotPasswordStrings.USER_NAME_INVALID);
                }

            }
            PartialViewResult retVal = null;
            if (ModelState.IsValid)
            {

                retVal = PartialView("ForgotPasswordAnswerAjax",model);
            }
            else
            {
                retVal = PartialView("_ForgotPasswordUserNameAjax",model);
            }

            return retVal;

        }

然而,每一次,视图只返回PartialView,而不是包含在布局中(所以只是我的PartialView在屏幕上,没有其他的).我尝试了一些我在网上找到的东西…
http://www.compiledthoughts.com/2011/01/aspnet-mvc-razor-partial-views-with.html
https://stackoverflow.com/questions/4655365/mvc3-submit-ajax-form

但没有什么可以解决这个问题.我已经将InsertionMode更改为所有值,而不改变.我已将@ Html.Partial更改为一个代码块
@ {
Html.RenderPartial(“_ ForgotPasswordUserNameAjax”,ViewData.Model);
}.

这不行

我的想法(和耐心)用完了!

请帮忙!

解决方法

编辑
PEBKAC.

我忘了升级项目时,我添加了新的jquery.unobtrusive-ajax.js文件,但从未将它们包含在_Layout.cshtml页面中.补充该库修复问题.对不起大家!

原文
我开始认为这是一个错误.再次将未转换的项目(MVC2)转换为MVC3.我以aspx / ascx格式离开所有原始页面并运行该项目.我试过页面.同样的问题仍然存在.回到MVC2,它工作正常.再次尝试MVC3,再次发生问题.

我使用与这个非常相似的页面来转换项目

http://mattsieker.com/index.php/2010/11/21/converting-asp-net-mvc2-project-to-mvc3/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读