我正在尝试使用 ajax 将数据从 View 传递到 Controller 操作方法,如下所示:-
我有用户的 Membership 实例,我使用 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(AsyncCallback callback, object state)
内部收到错误,指出“没有为此对象定义无参数构造函数”。我的行动方法甚至没有控制权。如果我从 Action Method 中删除参数
(MembershipUser MyUser)
它会发布到 Action 方法,但是最佳答案
问题是您不能将 MyUser 作为参数从 JQuery 传递,因为 JQuery 不知道类 MembershipUser。请记住,JQuery 是一种客户端语言,而 MembershipUser 是在服务器端用 C# 定义的。
您可以使用 GET 将您需要的属性从 MyUser 对象传递到 Process 操作,如下所示(假设 MyUser 对象具有和 ID 一个名称):
$('#Link').click(function () {
$.ajax({
url: http://localhost/Account/Process,
type: 'GET',
data: {
id: "@ViewBag.MyUser.ID",
name: "@ViewBag.MyUser.Name"
},
success: function () {
},
error: function () {
}
});
Action 应该是这样的:
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/