我有一个 javascript 函数,可以按我想要的方式工作:
<script language="javascript" type="text/javascript">
function dofunction(dropdown) {
debugger;
for (i = 0; i < 194; i++) {
if (dropdown[i].selected == true) {
var Shrt_ttls = dropdown[i].value.toString();
$.ajax({
url: "/ProgramSummary/Details?titl=" + Shrt_ttls//,
//type: 'Post'
});
i = 195;
}
}
return;
}
</script>
代码重定向到 ProgramsummaryController 的 Details 方法(在调试中一切正常,正确的值传递给该方法,Details 方法如下所示
public ActionResult Details(string titl)
{
using (var dc = new USP_Select_TRP_ProgramSummary_wShortNameDataContext())
{
string shrt_titles = titl;
if (shrt_titles == null)
{
shrt_titles = "3DELRR";
}
return View(dc.usp_Select_TRP_ProgramSummary_wShortName(shrt_titles).Single());
}
}
View 被调用,似乎很好,并返回到 _Layout.cshtml 一切看起来都很好,但没有显示详细信息 View ,而是显示原始索引 View 。好像我使用
@Html.ActionLink("Resource(s)", "Details", "ProgramSummary", new { titl = "3DELRR"})
发生与之前相同的事件,并且显示详细信息 View ,而不是保留索引 View 。为什么第一种方法不行?
最佳答案
您应该使用:
location.href = "/ProgramSummary/Details?titl=" + Shrt_ttls;
ajax 与 Ajax 不同,它只是 JavaScript 中的请求,除非您对其进行编码,否则浏览器不会显示它。
关于asp.net-mvc - Ajax 重定向与 ActionLink 的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7999422/