2013-04-30 3 views
0

В представлении MVC 4 я присваиваю значения скрытым во время отправки. Но я не получаю это значение обратно к контроллеру. Вот мой кодЗначения, назначенные jquery, не отправляются обратно контроллеру

@model Web.Models.FeaturedContactViewModel 
@using (Html.BeginForm("Update", "User", FormMethod.Post)) 
{ 
    @Html.HiddenFor(m => m.FeaturedSelected); 
    <input type="submit" value="Update" onclick="return onSubmit()" /> 
} 
@section scripts 
{ 
<script type="text/javascript"> 
    function onSubmit() { 

     var selectedOptions = $.map($('#FeaturedContacts option'), 
           function (e) { return $(e).val(); }); 
     $("#FeaturedSelected").val(selectedOptions.join(",")); 
     return true; 
    }; 
</script> 
} 

контроллер

[HttpPost] 
    public ActionResult FeaturedContacts(FeaturedContactViewModel model) 
    { 
     return View(); 
    } 

FeaturedContactViewModel

public class FeaturedContactViewModel 
{ 
    public List<Contact> AllContacts { get; set; } 

    public List<Contact> FeaturedContacts { get; set; } 

    public int[] AllSelected { get; set; } 
    public int[] FeaturedSelected { get; set; } 
} 
+0

Это весь вид, или только его часть? Как содержимое модели представления попадает в ваше мнение? –

+0

Я обновил модель сейчас .. pls check ... – 2013-04-30 12:09:03

+0

Вы проверили, что 'FeaturedSelected' действительно имеет значение? –

ответ

0

Похоже причине вы не получаете свои ценности обратно, потому что вы определили их как массив ints, когда в HTML-представлении вы получаете значения как строки. Таким образом, массив вашей модели представления не заполняется. Получаете ли вы значения обратно в контроллер, если вы определяете FeatureSelected как строку []? Вы всегда можете преобразовать их в ints в контроллере.

+0

Спасибо .................... – 2013-05-02 13:53:27