传递一个JS数组回控制器问题
问题描述:
我有我的观点:传递一个JS数组回控制器问题
<% using (Html.BeginForm("SaveRecommendedUserDetails", "Recommend", FormMethod.Post, new { enctype = "multipart/form-data" }))
{ %>
<% foreach (var group in Model.Results)
{ %>
<div id="group-select<%: group.GroupId %>" style="width:auto; height:50px; border:solid 1px black; margin:5px;" >
<h3> <a href="javascript:OnGroupClicked(<%: group.GroupId %>)" id="changer<%: group.GroupId %>"><%: group.Name %></a></h3>
</div>
<% } %>
{
JS:
<script type="text/javascript">
function OnGroupClicked(groupId) {
var groupIds = new Array();
$("#changer" + groupId).on("click", function (e) {
e.preventDefault();
var body = $('#group-select' + groupId),
green = "rgb(0, 128, 0)",
white = "rgb(255, 255, 255)";
if (body.css("backgroundColor") !== green) {
groupIds.push(groupId);
body.css("backgroundColor", green);
} else {
groupIds.pop(groupId);
body.css("backgroundColor", white);
}
});
}
</script>
我的控制器:
[HttpPost]
public ActionResult SaveRecommendedUserDetails(RecommendedUserDataModel model)
{
var userId = ZincService.GetUserIdByEmail(model.Email);
model.UserId = userId;
ZincService.SaveRecommendedUserDetails(model);
return RedirectToAction("Index");
}
RecommendedUserDataModel
public class RecommendedUserDataModel
{
public int UserId { get; set; }
public string Email { get; set; }
public string Firstname { get; set; }
public string Surname { get; set; }
public string Department { get; set; }
public string JobTitle { get; set; }
public IEnumerable<DataModels.Group.GroupDataModel> Groups { get; set; }
}
我的问题是,我需要将groupId返回给控制器,如果它被“选中”,因此点击。我怎么能这样做?
答
第三步:
<script type="text/javascript">
function OnGroupClicked(groupId) {
var groupIds = new Array();
$("#changer" + groupId).on("click", function (e) {
//Here is Step#3
$('#hdnGroupId').val(groupId+','+$('#hdnGroupId').val());
});
}
</script>
答
您可以通过将逗号分隔的组ID暂时保存到隐藏字段来传递它。 步骤做:
- 添加一个字符串属性到模型像“hdnGroupIds”
- 把一个隐藏字段到下表格视图。
- 在document.ready和OnGroup Clicked方法中,从ajvascript中将逗号分隔的groupID保存在hdnGroupIds中。
经过上述步骤,您可以在您的发布操作中将逗号化的GroupIds获取到您的控制器中。
+0
我已完成1.和2.但不知道该怎么做3.? – 2013-02-15 12:54:41
是您的控制器得到,当你放置你的行动结果里面调试器击中? – 2013-02-15 10:01:53
是的,但我需要在我的RecommendedUserDataModel组中选择组的id,因此我可以将它与用户详细信息一起保存 – 2013-02-15 10:08:01