发布ASP.net MVC表单,其中包含用于ASP.net MVC的Kendoui小部件

时间:2014-02-11 06:20:53

标签: kendo-ui-mvc

我正在使用Kendoui MVC扩展开发我的ASp.net MVC应用程序。 所以在我的表格中,我有所有kendoui网格,下拉,日期选择器等... 我已经在@using(Html.BeginForm())中积累了所有这些 但我不确定如何将表单数据发布到控制器。如果有人这样做你可以请你的经验。

例如:

我有两个实体:我的DAL中的Faculty和FacultyType

public class Faculties
{
    public int FacultyId { get; set; }
    public string StaffNumber { get; set; }

    public int FacultyTypeId { get; set; }
    public virtual FacultyTypes FacultyTypes { get; set; }
  }

public class FacultyTypes
{
    public FacultyTypes()
    {
        this.Faculties = new List<Faculties>();
    }
    public int FacultyTypeId { get; set; }
    public string FacultyTypeCode { get; set; }
    public string FacultyType { get; set; }
    public bool IsDefunct { get; set; }
    public virtual ICollection<Faculties> Faculties { get; set; }
}

我的应用程序中有我的ViewModel:

public class ViewModelFaculty
{
    public int FacultyId { get; set; }
    public string StaffNumber { get; set; }

    public ViewModelFacultyTypes FacultyType { get; set; }
  }

public class ViewModelFacultyTypes
{

        [ScaffoldColumn(false)]
        public int FacultyTypeId { get; set; }

        [Required(ErrorMessage ="Faculty Type Code is Required")]
        public string FacultyTypeCode { get; set; }

        [Required]
        public string FacultyType { get; set; }

        public bool IsDefunct { get; set; }

}

My View页面,为ASp.net MVC添加了kendoui扩展名。

 @model FMSApps.Models.ViewModelFaculty

@using(Html.BeginForm())
  { 
   <fieldset>
     <legend class="main">Personal Particulars</legend>
        <div class="view-table">
          <div class="view-row">
           <div class="view-name"><label for="staffId">Staff ID</label></div>
            <div class="view-name"><input id ="txtStaffId" name="StaffId" class="k-textbox" data-bind="value: StaffId" type="text" required /></div>
            <div class="view-name"><label for="facultyType">Faculty Type</label></div>
            <div class="view-name">
            @(Html.Kendo().DropDownList()
              .Name("ddFacultyType")
              .DataTextField("FacultyType")
              .DataValueField("FacultyTypeId")
              .OptionLabel("Select Faculty Type")
              .Enable(true)
              .AutoBind(true)
              .DataSource(ds =>
              {
                  ds.Read(read =>
                  {
                      read.Action("GetFacultyTypes", "NewFaculty");
                  })
                  .ServerFiltering(true);
              })

            )
        </div>
    </div>

我正在展示我的观点的一部分,好像我可以发布两个字段然后休息所有将具有相同的逻辑。 所以现在当我提交表单时,我需要将表单中的数据发布到控制器。

我知道它可以在ASp.net mvc html助手中但不确定如何处理kendoui,甚至kendoUi网站也没有给出任何有关如何使用表单中的扩展以及如何发布的结束exaple数据。

如果有人在同一环境或任何方向上工作,请建议我。

1 个答案:

答案 0 :(得分:1)

假设您使用

<input id ="txtStaffId" name="StaffId" class="k-textbox" data-bind="value: StaffId" type="text" required /></div>

@(Html.Kendo().DropDownList()
          .Name("ddFacultyType")
          .DataTextField("FacultyType")
          .DataValueField("FacultyTypeId")
          .OptionLabel("Select Faculty Type")
          .Enable(true)
          .AutoBind(true)
          .DataSource(ds =>
          {
              ds.Read(read =>
              {
                  read.Action("GetFacultyTypes", "NewFaculty");
              })
              .ServerFiltering(true);
          })
        )`

当在页面上按下具有属性的按钮时,表单上的字段将发布到控制器。这意味着在这种情况下,字段名称“ txtStaffId ”与输入值&amp;具有配对值的“ ddFacultyType ”(无论您在列表中选择哪个)都将发送给控制器。