jquery - 使用 jQuery 重定向到不同的动作视图
问题描述
只是一个快速的问题。我有一个带有级联组合框的页面...因此,如果用户从第一个组合框中选择任何项目,那么网站将从服务器请求中获取第二个组合框项目...
如果在我获取第二个数据时出现问题,我们的问题是,如果出现错误,我希望网站重定向到 ErrorView 而不是 ComboBox View。
查询
$("#SelectedProductTypeID").change(function () {
var pType = $("#SelectedProductTypeID").val();
var url = '@Url.Content("~/")' + "User/GetProductNameList";
var ddlsource = "#SelectedProductTypeID";
$.getJSON(url, { pTypeId: pType }, function (data) {
if (typeof (data.errorMessage) != undefined) {
alert(data.errorMessage);
}
var items = '';
$("#SelectedProductNameID").empty();
$.each(data, function (i, row) {
items += "<option value='" + row.value + "'>" + row.text + "</option >";
});
$("#SelectedProductNameID").html(items);
});
});
控制器动作
public JsonResult GetProductNameList(int pTypeId)
{
var (list, error) = productRepository.GetProductList(configuration);
if (!string.IsNullOrEmpty(error))
{
return Json(new { ErrorMessage = "Fail to get product name list" });
}
.....
......
return Json(ProductNameList);
}
我不想显示警报,而是想重定向到共享文件夹中的错误视图。
我试过这个而不是警报
var errorUrl = '@Url.Content("~/")' + "User/ErrorPage";
$.ajax({
url: errorUrl, success: function (data) {
}
});
使用新的错误操作,但没有工作。不过,我要去同一个视图。错误视图不显示。
public IActionResult ErrorPage(string errorText)
{
return View("Error",
new ErrorViewModel
{
ActionName = " ",
ControllerName = "UserController - ",
ErrorMessage = errorText
});
}
解决方案
在 JQuery 中,您可以使用 window.location
试试下面简短的代码
var errorUrl = '@Url.Content("~/")' + "User/ErrorPage";
$.ajax({
url: errorUrl, success: function (data) {
}
});
用下面的代码替换它
return window.location = '/User/ErrorPage';
推荐阅读
- c - 位切片:找到最小值
- itext7 - 为什么我无法在 iText7 中更改二维码的大小?
- typescript - 更新到 typescript 3.8,使数组只读
- laravel - Laravel Eloquent Accessor 没有在关系中工作?
- c# - Facebook 在 ASP.Net Core Identity 中登录移动 API 并使用 Facebook 应用程序登录
- geolocation - 点附近道路功能类检索不准确
- spring-boot - 如何解决h2数据库和springboot中错误的用户名和密码错误?
- vue.js - Vue 中的动态根 url 结构,带有 vue-router、路由保护和 Vuex
- mysql - 为什么 MySQL 整数比较比 datetime null 比较慢?
- dataweave - 在 Mule4 中将日期从数字转换为字符串格式需要帮助