/ / Моделиране на множество типове с еднакви имена на собственост - asp.net-mvc, свързване на модел

Обвързване на модела с няколко типа свойства - asp.net-mvc, свързване на модела

Имам изглед, който съдържа 2 полета за списък: Аудитория и локал

Опитвам се да изпратя формуляр, който съдържа избрания индекс и на двата контролера, който има начин на действие на този подпис:

public JsonResult Submit(Audience aud, Locale loc)
{
// do stuff
}

Проблемът, който имам, е Аудитория и Локалимат свойство за идентификация, така че модела Binder е малко объркан, за да присвоите избраните стойности на. И двете се присвояват на стойността „1“, когато аудиторията трябва да има „2“, а локал трябва да има „1“

Въпросът е как да получа страницатаРазграничи между двете, когато подаде? Опитахме да добавим стойността на идентификатора за локал с "locale." "&locale.id=1&audience.id=2" но това не изглежда да работи.

Някакви предположения? Ако е необходима повече информация, аз ще го снабдя.

Благодаря

Дейв

Отговори:

3 за отговор № 1

Употреба:

public JsonResult Submit([Bind(Prefix = "audience")]Audience aud,[Bind(Prefix = "locale")]Locale loc)
{
// do stuff
}

Всяко поле за аудитория трябва да има префикс „аудитория“ в име в HTML полето: audience.id, audience.name, ...

<input id="audience_name" name="audience.Name" type="text" value="" />

2 за отговор № 2

Трябва да имате конкретна ViewModel за вземанеданни във Вашето Подаване на Действие. Този обект трябва да има AudienceId и LocaleId. Когато създавате падащите списъци, трябва да ги създадете с имена, които съответстват на очакваното.