c# – 如何在禁用Javascript时优雅地处理AJAX PartialView更新
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 如何在禁用Javascript时优雅地处理AJAX PartialView更新,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1521字,纯文字阅读大概需要3分钟。
内容图文
我终于设法使用Ajax更新我的PartialView.部分视图的目的是侧边栏窗口小部件,它显示注册的内容并允许从注册中删除项目.
PartialView的缩写版本如下:
<table id="item-entries">
@foreach (var item in Model.Items)
{
<tr>
<td>@item.Name</td>
<td>@item.Price</td>
<td>
@using (Ajax.BeginForm("RemoveItemEntry", "Registration", new AjaxOptions { UpdateTargetId = "item-entries" }))
{
<button type="submit" name="ItemId" value="@item.ItemId">×</button>
}
</td>
</tr>
}
</table>
这是动作的缩写示例:
[HttpPost]
public ActionResult RemoveItemEntry(ItemViewModel data)
{
// Perform logic to remove the item from the registration
// then return the PartialView with updated model
return PartialView("~/Views/Partials/ItemEntries.cshtml", model);
}
}
现在效果很好但是我不想为那些禁用JavaScript的人提供破解经验.如果您在禁用JavaScript的情况下发布表单,则操作仍会正确执行,但您将被重定向到呈现PartialView的URL,而不是其他任何内容.我想要发生的是,对于禁用JavaScript的用户,他们会被重定向回发布表单的原始页面.
这可以实现吗?
解决方法:
所以你有两个选择:
第一个是将Action方法更改为以下内容:
[HttpPost]
public ActionResult RemoveItemEntry(ItemViewModel data)
{
// Perform logic to remove the item from the registration
// then return the PartialView with updated model
if (Request.IsAjaxRequest())
{
return PartialView("~/Views/Partials/ItemEntries.cshtml", model);
}
else
{
// return the initial View not the parial fie
}
}
第二个选项是使用调用返回初始View的Action方法的法线替换Ajax窗体.然后你必须编写一个jQuery代码,在提交表单时进行AJAX调用,但是它会调用另一个返回PartialView的方法的AJAX.
内容总结
以上是互联网集市为您收集整理的c# – 如何在禁用Javascript时优雅地处理AJAX PartialView更新全部内容,希望文章能够帮你解决c# – 如何在禁用Javascript时优雅地处理AJAX PartialView更新所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。