2014-01-15 4 views
0

Так что у меня есть это форма, созданная с расширением beginform как этотHtml.BeginForm и Кендо Ui в MVC 4

using (Html.BeginForm("SendEmail", "Email", FormMethod.Post, new { id = "emailForm",  
onsubmit = "return Check();"})){ 

внутри я создал некоторый Кендо Ui виджет как этот

<table> 
    <tr> 
    <td>@Html.LabelFor(x => x.Senders)</td> 
    <td> 
     @(Html.Kendo().DropDownList() 
     .Name("Sender") 
     .DataTextField("Text") 
     .DataValueField("Value") 
     .BindTo(Model.Senders)) 
    </td> 
    </tr> 
    <tr> 
     <td>@Html.Raw(Server.HtmlDecode(@Model.RecipientTable))</td>          
    </tr> 
    <tr> 
    <td colspan ="2"> 
     @(Html.Kendo().MultiSelect() 
     .Name("Users") 
     .DataTextField("Name") 
     .DataValueField("Id") 
     .Placeholder("Optional - Choose additional users to send emails to:") 
     .ItemTemplate("#=LastName #, #=FirstName # #=MiddleInitial #") 
     .TagTemplate("#=LastName #, #=FirstName # #=MiddleInitial #") 
     .BindTo(Model.OptionalUsers)) 
    </td> 
    </tr> 

в мой контроллер E-mail у меня есть этот метод

[HttpPost] 
public bool SendEmail(EmailModel Email){ .. stuff....} 

Где EmailModel является tightl y привязаны к виду, которое содержит форму сверху. У меня возникает вопрос и проблема: возможно ли, и если да, как передать модель в метод, содержащий информацию о том, что пользователь выбрал? Или я не могу использовать отправку формы и вам придется вручную получить значение и передать его как JSON контроллеру через пользовательскую функцию, которая выполняет вызов ajax?

+0

, если вы не используете пост, тогда вам нужно будет использовать вызов ajax. –

+0

@MattBodily. Что вы имеете в виду? Разве я не использую почту? –

ответ

0

Я думал, что прочитал, что вы не использовали пост. Единственные элементы, которые автоматически возвращаются по почте, - это поля, которые были помещены в помощник. Что мы делаем это

@Html.DropDownListFor(x => x.Sender, new { @class = "ddlSender" }) 

затем в сценарии мы инициализируем кендо часть его

$('.ddlSender').kendoDropDownList(); 

этот путь пункт модель положить в для помощника поэтому он получает отправил обратно к контроллеру и вы получить преимущества выпадающего списка кендо. Надеюсь, это поможет

+0

Итак, это не обязательно модель, которая возвращается, но значение, созданное из помощника. И я предполагаю, что я не могу использовать оболочку MVC в этом случае. –

+1

вправо, если вы не можете использовать помощник, я бы рекомендовал перейти на ajax-маршрут, чтобы вручную отправить значения обратно контроллеру. –

+0

Dang :) спасибо за помощь –

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