gpt4 book ai didi

c# - 使用ajax后返回同一 Controller 的另一个MVC3 View

转载 作者:行者123 更新时间:2023-11-28 20:41:03 24 4
gpt4 key购买 nike

如何返回同一 Controller 的另一个 View ?我对应用程序进行了一些调试:ajax 方法调用 Controller 操作,传递参数,执行指令。在

return View("GetEmployeeDays", model);,

GetEmployeeDays” View 接收模型中的值并进行填充,但最终在浏览器中我收到初始 View (来 self 发出的请求) - 而不是 GetEmployeeDays查看

来自 Global.asax 的路由代码:

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}

调用操作 Controller 并传递参数的 JQuery 代码:

<script type="text/javascript">
$(document).ready(function () {
$('li').click(function () {
$.ajax({
url: '@Url.Action("GetEmployeeDays", "ApproveWork")',
type: 'GET',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: { userCode: $(this).attr('id') }
})
});
});

应呈现 GetEmployeeDays View 的 Controller 操作:

   [HttpGet]
public ActionResult GetEmployeeDays(string userCode)
{
.....
return View("GetEmployeeDays", model);
}

最佳答案

如果您只想将某些内容加载到页面的一部分而不重新加载到新页面,则应该在 ajax 函数的回调中更新页面的特定部分。

$(function(){
$('li').click(function () {
var uCode=$(this).attr("id");
$.get("@Url.Action("GetEmployeeDays","ApproveWork")?userCode="+uCode,
function(response){
$("#DivToBeUpdated").html(response);
});
});
});

如果您想重定向到新 View ,您应该通过更新 location.href 属性值来实现。

$(function(){
$('li').click(function () {
var uCode=$(this).attr("id");
var url="@Url.Action("GetEmployeeDays","ApproveWork")?userCode="+uCode;
window.location.href=url;
});
});
});

关于c# - 使用ajax后返回同一 Controller 的另一个MVC3 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14401750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com