Asp.net mvc 不引人注目的ajax-视图完全被部分视图取代
我搜索了多个示例,并尝试了几种方法使其正常工作。目前,我正在尝试使用一个指向PartialViewResult方法的Ajax.htmlink替换一个div 我试过了Asp.net mvc 不引人注目的ajax-视图完全被部分视图取代,asp.net-mvc,Asp.net Mvc,我搜索了多个示例,并尝试了几种方法使其正常工作。目前,我正在尝试使用一个指向PartialViewResult方法的Ajax.htmlink替换一个div 我试过了 检查网络和javascript控制台,确保所有my.js都已加载 解除绑定stock jqueryval捆绑包并手动包含脚本 仔细检查,我没有其他具有相同更新目标Id的DOM元素 检查我的AjaxOption以确保一切都是正确的 我知道unobtrusive正在工作,因为我的电子邮件副本远程验证检查正在工作 现在,我将显示调试过
- 检查网络和javascript控制台,确保所有my.js都已加载
- 解除绑定stock jqueryval捆绑包并手动包含脚本
- 仔细检查,我没有其他具有相同更新目标Id的DOM元素
- 检查我的AjaxOption以确保一切都是正确的
以下是加载ajax之前页面的外观 我的目标是替换右侧当前包含email、name和zipcode值的容器 结果如下## 这就是我的视图代码的样子
我的帐户
-
-
@ActionLink(“警报”,“管理警报”,空,新AjaxOptions
{
HttpMethod=“GET”,
UpdateTargetId=“ajax更新”,
InsertionMode=InsertionMode.Replace,
OnBegin=“ajaxBegin”,
OnFailure=“ajaxFail”,
OnComplete=“ajaxComplete”,
OnSuccess=“ajaxSuccess”
},新的{@class=“active”})
-
-
-
增加能见度
别忘了“碰撞”你的列表以获得更多的可见性
@Html.Partial(“_ManageUserAccount”,模型)
部分视图代码##
@Model.Username:Alerts
更改您的提醒
@使用(Html.BeginForm(“ManageAlerts”,“Account”,FormMethod.Post,new{@class=“form vertical”,role=“form”}))
{
@Html.AntiForgeryToken()
@Html.CheckBoxFor(P=>P.EmailAlertsOn)@Html.LabelFor(P=>P.EmailAlertsOn)
电子邮件警报选项
@Html.CheckBoxFor(P=>P.emailonnewmessagon)@Html.LabelFor(P=>P.emailonnewmessagon)
@Html.ValidationMessageFor(P=>P.EmailOnNewMessageOn)
@Html.CheckBoxFor(P=>P.EmailOnReplyOn)@Html.LabelFor(P=>P.EmailOnReplyOn)
@Html.ValidationMessageFor(P=>P.EmailOnReplyOn)
@CheckBoxFor(P=>P.EmailOnAccountUpdateOn)@Html.LabelFor(P=>P.EmailOnAccountUpdateOn)
@Html.ValidationMessageFor(P=>P.EmailOnAccountUpdateOn)
保存详细信息
}
最后是控制器代码##
[HttpGet]
public PartialViewResult ManageAlerts()
{
var user=UserManager.FindById(Guid.Parse(user.Identity.GetUserId());
Models.Account.ManageAlertsViewModel vm=新的ManageAlertsViewModel();
vm.Username=user.Username;
vm.EmailAlertsOn=user.EmailAlertsOn;
vm.EmailOnAccountUpdateOn=user.EmailOnAccountUpdateOn;
vm.EmailOnNewMessageOn=user.EmailOnNewMessageOn;
vm.EmailOnReplyOn=user.EmailOnReplyOn;
返回PartialView(“\u ManageAlerts”,vm);
}
@Scripts.Render(“~/bundles/jqueryval”)
<div class="container">
<br />
<br />
<div class="row">
<div class="col-sm-3">
<div class="sidebar-account">
<div class="row ">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">My Account</div>
<div class="panel-body">
<ul class="nav">
<li>
<a class="active" href="account_dashboard.html">Me</a>
</li>
<li>
@Ajax.ActionLink("Alerts", "ManageAlerts", null, new AjaxOptions
{
HttpMethod = "GET",
UpdateTargetId = "ajax-update",
InsertionMode = InsertionMode.Replace,
OnBegin = "ajaxBegin",
OnFailure = "ajaxFail",
OnComplete = "ajaxComplete",
OnSuccess = "ajaxSuccess"
}, new { @class = "active" })
</li>
<li>
<a class="active" href="account_account.html">Linked Accounts</a>
</li>
<li>
<a class="active" href="account_ads.html">Manage ads</a>
</li>
<li>
<a class="active" href="account_ad_create.html">Create new ad</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="row hidden-xs">
<div class="col-lg-12">
<div class="well">
<div class="row ">
<div class="col-lg-3">
<img src="css/images/icons/Crest.png" width="45" />
</div>
<div class="col-lg-9">
<h4 style="margin-top: 0">Increase visibility</h4>
<p>Don't forget to 'bump' your listing to gain more visibility</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-9">
<div id="ajax-update">
@Html.Partial("_ManageUserAccount", Model)
</div>
</div>
<br />
</div>
<div id="fadein-div">
<div class="panel panel-default">
<div class="panel-heading">@Model.Username : Alerts</div>
<div class="panel-body">
<br />
<div class="row">
<div class="col-sm-12">
<p><span style="font-weight:bold">Change your alerts!</span></p>
</div>
</div>
<br />
@using (Html.BeginForm("ManageAlerts", "Account", FormMethod.Post, new { @class = "form-vertical", role = "form" }))
{
@Html.AntiForgeryToken()
<fieldset>
<div class="row">
<div class="col-sm-12 ">
<div class="form-group">
<div class="row">
<div class="col-sm-2">
<div class="checkbox">
@Html.CheckBoxFor(P => P.EmailAlertsOn) @Html.LabelFor(P => P.EmailAlertsOn)
</div>
</div>
</div>
</div>
<div id="control-div">
<div class="form-group">
<h3>Email alert options</h3>
</div>
<div class="form-group">
<div class="checkbox">
@Html.CheckBoxFor(P => P.EmailOnNewMessageOn) @Html.LabelFor(P => P.EmailOnNewMessageOn)
</div>
<div class="text-danger">
@Html.ValidationMessageFor(P => P.EmailOnNewMessageOn)
</div>
</div>
<div class="form-group">
<div class="checkbox">
@Html.CheckBoxFor(P => P.EmailOnReplyOn) @Html.LabelFor(P => P.EmailOnReplyOn)
</div>
<div class="text-danger">
@Html.ValidationMessageFor(P => P.EmailOnReplyOn)
</div>
</div>
<div class="form-group">
<div class="checkbox">
@Html.CheckBoxFor(P => P.EmailOnAccountUpdateOn) @Html.LabelFor(P => P.EmailOnAccountUpdateOn)
</div>
<div class="text-danger">
@Html.ValidationMessageFor(P => P.EmailOnAccountUpdateOn)
</div>
</div>
</div>
<br />
<button type="submit" class="btn btn-primary">Save details</button>
</div>
</div>
</fieldset>
}
</div>
</div>
[HttpGet]
public PartialViewResult ManageAlerts()
{
var user = UserManager.FindById(Guid.Parse(User.Identity.GetUserId()));
Models.Account.ManageAlertsViewModel vm = new ManageAlertsViewModel();
vm.Username = user.UserName;
vm.EmailAlertsOn = user.EmailAlertsOn;
vm.EmailOnAccountUpdateOn = user.EmailOnAccountUpdateOn;
vm.EmailOnNewMessageOn = user.EmailOnNewMessageOn;
vm.EmailOnReplyOn = user.EmailOnReplyOn;
return PartialView("_ManageAlerts", vm);
}
<!-- js library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js"></script>
<script src="~/Themes/Authenticity%20Forms/Authenty/js/bootstrap.min.js"></script>
<script src="~/Themes/Authenticity%20Forms/Authenty/js/jquery.icheck.min.js"></script>
<script src="~/Themes/Authenticity%20Forms/Authenty/js/waypoints.min.js"></script>
<!-- authenty js -->
<script src="~/Themes/Authenticity%20Forms/Authenty/js/authenty.js"></script>
<!-- preview scripts -->
<script src="~/Themes/Authenticity%20Forms/Authenty/js/preview/jquery.malihu.PageScroll2id.js"></script>
<script src="~/Themes/Authenticity%20Forms/Authenty/js/preview/jquery.address-1.6.min.js"></script>
<script src="~/Themes/Authenticity%20Forms/Authenty/js/preview/scrollTo.min.js"></script>
<script src="~/Themes/Authenticity%20Forms/Authenty/js/preview/init.js"></script>
@Scripts.Render("~/bundles/jqueryval")