加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何使用ajax get或post在带有参数的mvc中将数据

发布时间:2020-12-16 07:24:25 所属栏目:asp.Net 来源:网络整理
导读:我试图使用ajax将数据从View传递到Controller Action Method,如下所示: – 我有一个用户的Membership实例,我从另一个控制器传入这个视图,使用的视图有点像这个ViewBag.MyUser = MyUser; 现在我想使用ajax将’MyUser’传递给另一个Controller表单,如下所示.
我试图使用ajax将数据从View传递到Controller Action Method,如下所示: –

我有一个用户的Membership实例,我从另一个控制器传入这个视图,使用的视图有点像这个ViewBag.MyUser = MyUser;

现在我想使用ajax将’MyUser’传递给另一个Controller表单,如下所示.

$('#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
}

如果我传递了ajax post,我在BeginExecuteCore(AsyncCallback回调,对象状态)内部得到错误,声明’没有为此对象定义无参数构造函数.’和控制甚至没有到我的行动方法.

如果我从Action Method中删除参数(MembershipUser MyUser),它会发布到Action方法,但随后

>在这种情况下,如果没有参数从该视图到控制器,我怎么能传递’MyUser’?
>路线有问题吗?如果是的话应该是什么路线?
>或者我应该使用获取还是发布?
>我应该将MyUser转换回MembershipUser?

解决方法

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

您可以使用GET将所需的属性从MyUser对象传递给Process操作,如下所示(假设MyUser对象具有,ID为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
}

我希望它对你有所帮助!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读