Ajax MVC4中的Html.BeginForm和剑道Ui

Ajax MVC4中的Html.BeginForm和剑道Ui,ajax,asp.net-mvc-4,kendo-ui,html.beginform,Ajax,Asp.net Mvc 4,Kendo Ui,Html.beginform,所以我有一个表单,它是用beginform扩展创建的,如下所示 using (Html.BeginForm("SendEmail", "Email", FormMethod.Post, new { id = "emailForm", onsubmit = "return Check();"})){ <table> <tr> <td>@Html.LabelFor(x => x.Senders)</td> <t

所以我有一个表单,它是用
beginform
扩展创建的,如下所示

using (Html.BeginForm("SendEmail", "Email", FormMethod.Post, new { id = "emailForm",    
onsubmit = "return Check();"})){
<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>
在内部,我创建了一些剑道Ui小部件,如下所示

using (Html.BeginForm("SendEmail", "Email", FormMethod.Post, new { id = "emailForm",    
onsubmit = "return Check();"})){
<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>

其中,
EmailModel
与包含上面表单的视图紧密绑定。我遇到的问题和麻烦是,是否有可能,如果有,如何将模型传递给包含用户选择信息的方法?还是因为我不能使用表单的submit,而必须手动获取值,并通过执行ajax调用的自定义函数将其作为JSON传递给控制器?

我想我读到您没有使用post。通过post自动返回的唯一项目是已放入for helper中的字段。我们所做的是

@Html.DropDownListFor(x => x.Sender, new { @class = "ddlSender" })
然后在脚本中初始化剑道部分

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

通过这种方式,模型项被放入一个for助手中,这样它就会被发布回控制器,并且您可以从剑道下拉列表中获得好处。希望这对您有所帮助

如果您不使用post,则需要使用ajaxcall@MattBodily什么意思?我没有使用post吗?好的,所以它不一定是传递回的模型,而是从帮助器创建的值。我想在这种情况下我不能使用MVC包装器。好的,如果你不能使用for助手,我建议使用ajax路径手动将值发送回控制器