2013-02-15 3 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; } 
} 

моя проблема заключается в том, что мне нужно вернуть группуId на контроллер, если он был «выбран» таким образом нажал. как я могу это сделать, пожалуйста?

+0

Ваш контроллер получить удар, когда вы разместили отладчик внутри результата действия? –

+0

да, но мне нужно получить в моих группах RecommendedUserDataModel идентификаторы выбранных групп, поэтому я могу сохранить их вместе с данными пользователя –

ответ

1

Step3:

<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. Сохраните запятую сгруппированную группуID в hdnGroupIds из ajvascript в документе document.ready и OnGroup Clicked.

После вышеуказанных шагов вы можете получить commessprated GroupIds в своем контроллере после вашего действия.

+0

Я сделал 1. и 2. но не знаю, как это сделать 3.? –

Смежные вопросы