gpt4 book ai didi

c# - 将数据从 jQuery 发布/获取到 MVC 4 Controller 并返回 View 的最佳方式

转载 作者:太空宇宙 更新时间:2023-11-03 11:00:04 26 4
gpt4 key购买 nike

因此,我有一个包含客户信息的表格,包括他们的姓名、电话、电子邮件等。我将表格设置为有一个单选按钮来从该表格中选择客户。这个单选按钮调用一个 jQuery 函数,该函数从 Controller 方法中获取客户的姓名。我正在寻找将 CustomerID 和 CustomerName 传递给 CustomerEvent Controller 的正确和最佳方法,该 Controller 返回特定客户的事件 View 。如果我尝试使用 AJAX POST,它不会在 data 中返回 View 。我也试过 window.location 但这也不起作用。

这是 Razor 代码:

@Html.ActionLink("Events ", "../CustomerEvent/Index", null, new { id = "btnEventsCustomerID" })

jQuery:

jQuery('input[type=radio]').change(function () {
jQuery('#hdnCustomerID').val($(this).val());
var CustomerID = jQuery('#hdnCustomerID').val();
var CustomerName = null;
$.ajax({
url: '/Customer/GetCustomerName',
data: { id: CustomerID },
type: "GET",
async: false,
cache: false,
success: function (data) {
CustomerName = data
}
});
alert(CustomerName);
jQuery('#btnEventsCustomerID').click(function () {
window.location = "/CustomerEvent/Index/?CustomerID=" + CustomerID + "&CustomerName=" + CustomerName;
});

CustomerName 警报正常运行。这是我用于返回客户事件 View 的 Controller 方法:

public ActionResult Index(int CustomerID = 0, string CustomerName="")
{
if (CustomerID != 0)
{
Session["CustomerID"] = CustomerID;
Customer CustomerObj = _customer.GetCustomer(CustomerID);
Session["CustomerName"] = CustomerObj.FirstName + " "+ CustomerObj.LastName;
}
return View(_customerEvent.GetCustomerEventCustomList(CustomerID));
}

最佳答案

您为什么要发送 CustomerName?看起来您没有在 Controller 方法中使用它,因为您关闭了 ID 并在 CustomerObj 中获取了客户详细信息(包括姓名)。如果可以,请简化并删减...

实际上,您有两种方法可以从同一链接调用同一 Controller 方法,一种是在操作链接中,当前将 null 传递给该方法,另一种是 jQuery 中的 .click() 覆盖,它实际上试图传递该方法参数,问题是,两者都在碰撞

由于您使用的是操作链接,因此实际上传递了路由值(您最初为 null 的位置),照此进行修改,您应该可以开始了(并摆脱 jQuery click override,因为它看起来像是在有效地将用户移动到新 View ):

    @Html.ActionLink("Events ", "../CustomerEvent/Index", 
new{CustomerID = model.CustomerID}, new { id = "btnEventsCustomerID" })

只需更改 model.CustomerID 相对于您在 View 中引用模型数据的方式

关于c# - 将数据从 jQuery 发布/获取到 MVC 4 Controller 并返回 View 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18016366/

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