2014-01-15 41 views
0

所以我有什麼是我內心產生了一些劍道UI部件像這樣Html.BeginForm和劍道UI在MVC 4

<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> 

在這樣

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

beginform擴展創建的窗體我的控制器電子郵件我有這種方法

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

其中EmailModel嚴格y綁定到包含上述表單的視圖。我遇到的問題和麻煩在於,如果能夠將模型傳遞給包含用戶選擇內容的方法,那麼是否有可能?或者是我無法使用表單的提交,並且必須手動獲取值並通過自定義函數將其作爲JSON傳遞給控制器​​,該函數執行ajax調用?

+0

如果你不使用後,那麼你將需要使用ajax調用 –

+0

@MattBodily你是什麼意思?我不使用信息嗎? –

回答

0

我以爲我讀到你沒有使用帖子。通過帖子自動返回的唯一項目是放入幫助器的字段。我們做的是

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

然後在腳本中,我們初始化它

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

這樣的模型項目是放在一個針對助手所以它被回傳到控制器和你的劍術部分獲得劍道下拉的好處。希望這可以幫助

+0

好了,所以它不一定是傳回的模型,而是從助手創建的值。我想我不能在這種情況下使用MVC包裝。 –

+1

對,如果你不能使用助手,我會建議去ajax路徑手動發送數值回控制器 –

+0

黨:)感謝您的幫助 –