1

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

例如:

我有两个实体:My 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; }

}

我的视图页面具有 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 helpers 中完成,但不确定如何处理 kendoui,甚至 kendoUi 网站也没有给出任何结束如何在表单中使用扩展以及如何发布数据的示例。

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

4

1 回答 1

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 ”和带有配对值的“ ddFacultyType ”(无论您在列表中选择哪个)将被发送到控制器。

于 2014-03-10T08:54:57.047 回答