2013-07-01 4 views
2

С существующим приложением на основе MVC, существует представление продукта, которое имеет ViewModel как ProductViewModel, этот ViewModel имеет все основные свойства, которые Продукт может иметь как Название продукта, Тип, Цена и т. Д. ..Публикация выбранных флажков на действие контроллера с помощью viewModel

С этим процессом создания продукта на этом представлении Цель состоит в том, чтобы связать список клиентов с Продуктом (который не является обязательным).

Чтобы получить список клиентов для того, чтобы выбрать этих ассоциированных клиентов, в настоящее время при нажатии кнопки существует ajax-вызов (getCustomers), который запрашивает действие контроллера для получения списка &, покажите его в таблице вместе с флажком, этот html created на лету в jQuery Ajax call,

С текущей реализацией выбранные идентификаторы не заполняются в модели вида, делая POST-действие вида продукта.

Цель состоит в том, чтобы получить отобранные идентификаторы клиентов, а также информацию о продукте в ViewModel.

Есть ли способ сделать это?

+0

Можете ли вы разместить код? –

+0

@JeevanJose, Какая часть вопроса непонятна? Я имею в виду, так как воспроизведение этого кода будет включать в себя многие части кодов, которые будут размещены здесь, если проблема не ясна, скорее, было бы очень полезно, если вы предложите дизайн, чтобы решить проблему. – Jay

+0

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

ответ

0

Я постараюсь ответить на него наилучшим образом, как я понимаю. Таким образом, предполагается, что вы создали «стол» с флажками в них, которые я полагаю выглядит примерно так:

<form> 
<table> 
    <tr><td><input type='checkbox' value='1' name='myCheckbox' />Some text</td></tr> 
    <tr><td><input type='checkbox' value='2' name='myCheckbox' />Some text</td></tr> 
    <tr><td><input type='checkbox' value='3' name='myCheckbox' />Some text</td></tr> 
    <tr><td><input type='checkbox' value='4' name='myCheckbox' />Some text</td></tr> 
</table> 
<input type="submit" /> 
</form> 

Внутри вашего ProductModel класса:

public class ProductModel 
{ 
    // Define the property here. 
    public int[] MyCheckbox { get; set; } 

    // The constructor where you do the initialization 
    public void ProductModel(int[] myCheckbox) 
    { 
     MyCheckbox = myCheckbox; 
    } 
} 

В вашем методе контроллера:

[HttpPost] 
public ActionResult SomeMethod(ProductModel productModel) 
{ 
    foreach(int value in productModel.MyCheckbox) 
    { 
     // Your code here.. 
    } 
} 

Вы получите значение флажков в виде массива в вашем методе контроллера.

+0

Этот пример почти близок к пониманию точной проблемы, [1] html для создания флажков внутри функции javascript [2] все выбранные значения флажка должны быть внутри viewmodel вместе с данными продукта ieProductViewModel – Jay

+0

@Jay Итак, вы хотите отправить данные из представления в модель? –

+0

Рассмотрите в моем ** ProductViewModel **, у меня есть свойство 'public class ProductViewModel { public IEnumerable SelectedCustomerId {get; задавать; } // и другие связанные продукта свойства ... } ' теперь цель состоит в том: ' [HttpPost] общественного ActionResult продукта (ProductViewModel productModel) { // Доступ выбранный список клиентов здесь } ' – Jay