Javascript 如何将ViewModel属性传递给ajax post方法?

Javascript 如何将ViewModel属性传递给ajax post方法?,javascript,ajax,asp.net-mvc,asp.net-mvc-3,Javascript,Ajax,Asp.net Mvc,Asp.net Mvc 3,我正在使用ASP.NETMVC3。 在我看来,这是一种ajax/javascript方法 就语法而言,这是正确的吗 familyMemberId将是动态的,但是userId不是动态的。 我想把userId从我的viewModel传递到这个ajax调用中,我该怎么做呢?你想做的是从控制器中的模型中获取数据到视图中。这就是MVC的全部内容。从: 控制器: 您可以使用VS菜单系统和实体框架定义模型,以便实际访问数据库 function ResendEmailInvite(internalUserId

我正在使用ASP.NETMVC3。 在我看来,这是一种ajax/javascript方法

就语法而言,这是正确的吗

familyMemberId
将是动态的,但是
userId
不是动态的。
我想把
userId
从我的viewModel传递到这个ajax调用中,我该怎么做呢?

你想做的是从控制器中的模型中获取数据到视图中。这就是MVC的全部内容。从:

控制器: 您可以使用VS菜单系统和实体框架定义模型,以便实际访问数据库

 function ResendEmailInvite(internalUserId, familyMemberId) { 
       theinternalUserId = internalUserId;
       theFamilyMemberId = familyMemberId;
      if(confirm('Are you sure you want to resend this family member's invite?')){
         $.ajax({
             type: "POST",
             url:"/Admin/ResendFamilyMemberEmail",
             data: {internalUserId : theinternalUserId, familyMemberId : theFamilyMemberId}, 
             success: function(response){
                alert(response);
             },
             error: function(){
                alert("Error");
            }
        });
        return false;
    }
}
视图:
@Model IEnumerable

您要做的是将数据从控制器中的模型获取到视图中。这就是MVC的全部内容。从:

控制器: 您可以使用VS菜单系统和实体框架定义模型,以便实际访问数据库

 function ResendEmailInvite(internalUserId, familyMemberId) { 
       theinternalUserId = internalUserId;
       theFamilyMemberId = familyMemberId;
      if(confirm('Are you sure you want to resend this family member's invite?')){
         $.ajax({
             type: "POST",
             url:"/Admin/ResendFamilyMemberEmail",
             data: {internalUserId : theinternalUserId, familyMemberId : theFamilyMemberId}, 
             success: function(response){
                alert(response);
             },
             error: function(){
                alert("Error");
            }
        });
        return false;
    }
}
视图:
@Model IEnumerable

您是否尝试过用
@userId
替换
internaluserid
?因此只需使用viewmodel属性并在前面钉上@符号即可?内部用户id实际上是viewModel内部用户对象的属性。所以访问它应该是InternalUser.UserId。。。那么它将如何运行呢?实际上,在控制器中,您需要将其传递给
视图包
ViewBag.userId=userId
。然后在javascript的适当位置执行
internalUserId:@ViewBag.userId
。如果我不想使用ViewBag怎么办?我的意思是,如果必须的话,我会的,但是还有其他选择吗?@user1977591你可以混合使用Razor和JavaScript命令,没有问题。只需将
@Model.familyMemberId
添加到您的JavaScription中,您是否尝试将
@userId
替换为
@userId
?因此只需使用viewmodel属性并在前面钉上@符号即可?内部用户id实际上是viewModel内部用户对象的属性。所以访问它应该是InternalUser.UserId。。。那么它将如何运行呢?实际上,在控制器中,您需要将其传递给
视图包
ViewBag.userId=userId
。然后在javascript的适当位置执行
internalUserId:@ViewBag.userId
。如果我不想使用ViewBag怎么办?我的意思是,如果必须的话,我会的,但是还有其他选择吗?@user1977591你可以混合使用Razor和JavaScript命令,没有问题。只需将
@Model.familyMemberId
添加到javascript中即可
@Model IEnumerable<MvcUser.Models.User>

<!-- other stuff -->

 <script type="text/javascript>
 // the rest of your script
        function ResendEmailInvite(internalUserId, familyMemberId) { 
           theinternalUserId = @Model.userId;
           theFamilyMemberId = familyMemberId;
          if(confirm('Are you sure you want to resend this family member's invite?')){
             $.ajax({
                 type: "POST",
                 url:"/Admin/ResendFamilyMemberEmail",
                 data: {internalUserId : theinternalUserId, familyMemberId : theFamilyMemberId}, 
                 success: function(response){
                    alert(response);
                 },
                 error: function(){
                    alert("Error");
                }
            });
            return false;
        }
    }