我正在尝试使用 ajax 将数据从视图传递到控制器操作方法,如下所示:-
我有一个用户的 Membership 实例,我使用 viewbag 从另一个控制器传递到下面的这个视图,有点像这样 ViewBag.MyUser = MyUser;
现在我想使用 ajax 将“用户”从该视图传递到另一个控制器,如下所示。
$('#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)
指出“没有为此对象定义无参数构造函数。”我的行动方法甚至没有控制。
如果我删除参数(MembershipUser MyUser)
从操作方法它发布到操作方法,但是然后
- 在这种情况下,我如何在没有参数的情况下将“MyUser”从该视图传递到控制器?
- 路线有问题吗?如果是,路线应该是什么?
- 或者我应该使用 get 或 post ?
- 我应该在哪里将 MyUser 转换回 MembershipUser ?
问题是你无法通过MyUser作为 JQuery 的参数,因为 JQuery 不知道该类会员用户。请记住,JQuery 是一种客户端语言,并且会员用户在服务器端用 C# 定义。
您可以从以下位置传递您需要的属性MyUser反对Process行动使用GET如下(假设MyUser对象有 和ID an a Name):
$('#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
}
我希望它能帮助你!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)