gpt4 book ai didi

asp.net-mvc - 如何使用 ajax get 或 post 在 mvc 中使用参数将数据从 View 传递到 Controller

转载 作者:行者123 更新时间:2023-11-30 23:57:15 29 4
gpt4 key购买 nike

我正在尝试使用 ajax 将数据从 View 传递到 Controller 操作方法,如下所示:-

我有一个用户的成员(member)实例,我使用 viewbag 从另一个 Controller 传递到下面的这个 View ,有点像这样 ViewBag.MyUser = MyUser;

现在我想使用 ajax 将“MyUser”传递到另一个 Controller ,形成此 View ,如下所示。

 $('#Link').click(function () {      
$.ajax({
url: http://localhost/Account/Process,
type: 'POST',
data: '@ViewBag.MyUser',
success: function () {
},
error: function () {
}
});

我发布的 ActionMethod 如下

public ActionResult Process(MembershipUser MyUser)
{
//Do somethihng with MyUser
}

如果我通过 do ajax post,我会在 BeginExecuteCore(AsyncCallbackcallback, object state) 处收到内部错误,指出“没有为此对象定义无参数构造函数”。控制甚至没有出现在我的操作方法中。

如果我从操作方法中删除参数(MembershipUser MyUser),它将发布到操作方法,但随后

  1. 在这种情况下,如果没有参数,我如何将“MyUser”从该 View 传递到 Controller ?
  2. 路线有问题吗?如果是,路线应该是什么?
  3. 或者我应该使用 get 还是 post ?
  4. 我应该在哪里将 MyUser 转换回 MembershipUser ?

最佳答案

问题是您无法从 JQuery 传递 MyUser 作为参数,因为 JQuery 不知道 MembershipUser 类。请记住,JQuery 是一种客户端语言,MembershipUser 是在服务器端用 C# 定义的。

您可以使用 GET 将所需的属性从 MyUser 对象传递到 Process 操作,如下所示(假设 >MyUser 对象具有 IDName):

$('#Link').click(function () {      
$.ajax({
url: http://localhost/Account/Process,
type: 'GET',
data: {
id: "@ViewBag.MyUser.ID",
name: "@ViewBag.MyUser.Name"
},
success: function () {
},
error: function () {
}
});

操作应该是这样的:

public ActionResult Process(int id, string name)
{
//Do something
}

希望对你有帮助!

关于asp.net-mvc - 如何使用 ajax get 或 post 在 mvc 中使用参数将数据从 View 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15931641/

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