2013-02-15 64 views
0

我有我的观点:传递一个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>&nbsp; &nbsp; <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返回给控制器,如果它被“选中”,因此点击。我怎么能这样做?

+0

是您的控制器得到,当你放置你的行动结果里面调试器击中? – 2013-02-15 10:01:53

+0

是的,但我需要在我的RecommendedUserDataModel组中选择组的id,因此我可以将它与用户详细信息一起保存 – 2013-02-15 10:08:01

回答

1

第三步:

<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> 
1

您可以通过将逗号分隔的组ID暂时保存到隐藏字段来传递它。 步骤做:

  1. 添加一个字符串属性到模型像“hdnGroupIds”
  2. 把一个隐藏字段到下表格视图。
  3. 在document.ready和OnGroup Clicked方法中,从ajvascript中将逗号分隔的groupID保存在hdnGroupIds中。

经过上述步骤,您可以在您的发布操作中将逗号化的GroupIds获取到您的控制器中。

+0

我已完成1.和2.但不知道该怎么做3.? – 2013-02-15 12:54:41

相关问题