2013-02-15 61 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

相關問題