Javascript 如何将ViewModel属性传递给ajax post方法?
我正在使用ASP.NETMVC3。 在我看来,这是一种ajax/javascript方法 就语法而言,这是正确的吗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
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;
}
}