Asp.net mvc 5 ASP.Net MVC 5 ActionResult引发404异常
我的大脑严重冻结: 我有一个MVC5项目,它使用bootstrap popover表单输入日期数据。在主登录页上调用popover,并将数据字符串化为JSON转发到主控制器中的ActionResult函数,然后该函数访问SQL server db并返回一个JSON数据集,该数据集用于构建cshtml视图中呈现的基于D3的可视化。 在这一点上,一切都是有效的,数据是有效的,模型和viz已经过单元测试。主控制器有两个控制器: popover js脚本(抄袭自): 以及控制器代码:Asp.net mvc 5 ASP.Net MVC 5 ActionResult引发404异常,asp.net-mvc-5,Asp.net Mvc 5,我的大脑严重冻结: 我有一个MVC5项目,它使用bootstrap popover表单输入日期数据。在主登录页上调用popover,并将数据字符串化为JSON转发到主控制器中的ActionResult函数,然后该函数访问SQL server db并返回一个JSON数据集,该数据集用于构建cshtml视图中呈现的基于D3的可视化。 在这一点上,一切都是有效的,数据是有效的,模型和viz已经过单元测试。主控制器有两个控制器: popover js脚本(抄袭自): 以及控制器代码: p
public ActionResult LoanCount(DateTime dStart, DateTime dEnd)
{
int iStart = (dStart.Year * 10000) + (dStart.Month * 100) + dStart.Day;
int iEnd = (dEnd.Year * 10000) + (dEnd.Month * 100) + dEnd.Day;
var json = Models.LoanCount.getCountStats (iStart, iEnd);
var data = JsonConvert.DeserializeObject<List<Models.LoanCount>> (json);
ViewBag.jData = json;
return Redirect ("/Views/Home/LoanCount.cshtml"); /* This is one of the
redirect variations that have been tried */
}
public ActionResult LoanCount(DateTime dStart,DateTime dEnd)
{
int iStart=(起始年*10000)+(起始月*100)+起始日;
国际日=(密度年*10000)+(密度月*100)+密度日;
var json=Models.LoanCount.getCountStats(iStart,iEnd);
var data=JsonConvert.DeserializeObject(json);
ViewBag.jData=json;
return Redirect(“/Views/Home/LoanCount.cshtml”);/*这是
重定向已尝试的变体*/
}
我遇到的问题是,我使用的所有重定向变体都会抛出404NotFound异常。调用无参数ActionResult RedirectToAction(…)会引发403异常。cshtml文件存在,路径已验证且正确
正在使用的浏览器是Chrome。缺少什么-有关此问题的任何线索和建议?您可以返回带有波浪号(~)前缀的视图。因此,URL不会更改
return View("~/Views/Home/LoanCount.cshtml");
如果要更改URL,必须使用带有控制器名称和方法名称的
RedirectToAction
方法 上一条评论:胖手指按回车键。修复方法是禁用ajax func,因为它正在发布回调,使用参数值重做URL并定义窗口位置,而不是发出ajax调用。现在一切正常。唷
$('.main-attributes').on('shown.bs.popover', function () {
$('.submit').click(function () {
var fromval = $('.popover #fromvalue').val();
var toval = $('.popover #tovalue').val();
var option = {
url: "/Home/LoanCount?dStart=" + fromval + "&" + "dEnd=" + toval,
data: JSON.stringify({ dStart: fromval, dEnd: toval }),
method: 'post',
dataType: 'json',
contentType: 'application/json;charset=utf-8'
};
window.location.href = option.url;
$('.main-attributes').popover('hide');
});
$('.cancel').click(function () {
$('.main-attributes').popover('hide');
});
});
控制员:
public ActionResult LoanCount(DateTime dStart, DateTime dEnd)
{
int iStart = (dStart.Year * 10000) + (dStart.Month * 100) + dStart.Day;
int iEnd = (dEnd.Year * 10000) + (dEnd.Month * 100) + dEnd.Day;
var json = Models.LoanCount.getCountStats (iStart, iEnd);
var data = JsonConvert.DeserializeObject<List<Models.LoanCount>> (json);
ViewBag.jData = json;
return View ("~/Views/Home/LoanCount.cshtml");
}
public ActionResult LoanCount(DateTime dStart,DateTime dEnd)
{
int iStart=(起始年*10000)+(起始月*100)+起始日;
国际日=(密度年*10000)+(密度月*100)+密度日;
var json=Models.LoanCount.getCountStats(iStart,iEnd);
var data=JsonConvert.DeserializeObject(json);
ViewBag.jData=json;
返回视图(“~/Views/Home/LoanCount.cshtml”);
}
我不确定您为什么希望返回重定向,但如果您只是从主页/借阅帐户返回视图-路由有效吗?我希望使用popover表单从主页传递SQL查询参数。这些参数生成一系列数据,用于评估企业中不同实体的流程性能。我希望使用通过popover表单输入的数据从主应用程序页面传递SQL查询参数。这些参数生成一系列数据,用于评估流程性能,通常用于生成企业中不同实体的BI仪表盘。Home/LoanCount路由运行良好,在第一次剪切中实现,以便测试基于D3的可视化页面。SQL查询参数在模型类中硬编码,以简化调试过程。希望这是有意义的。您是否尝试过重定向到控制器方法或完整url而不是视图?是的。结果是一样的。
public ActionResult LoanCount(DateTime dStart, DateTime dEnd)
{
int iStart = (dStart.Year * 10000) + (dStart.Month * 100) + dStart.Day;
int iEnd = (dEnd.Year * 10000) + (dEnd.Month * 100) + dEnd.Day;
var json = Models.LoanCount.getCountStats (iStart, iEnd);
var data = JsonConvert.DeserializeObject<List<Models.LoanCount>> (json);
ViewBag.jData = json;
return View ("~/Views/Home/LoanCount.cshtml");
}