2014-02-11 1 views
1

Я разрабатываю приложение ASPp MVC с использованием расширений Kendoui MVC. Итак, в моей форме у меня есть вся сетка кендуй, выпадающий список, датпикер и т. Д. Я накопил их все в своем @using (Html.BeginForm()) Но я не уверен. Как отправить данные своей формы в контроллер. Если кто-то сделал это, вы могли бы избавиться от своего опыта.публикация ASP.net MVC-формы с виджетами Kendoui для ASP.net MVC

Например:

У меня есть две сущности: Факультет и FacultyType Мой DAL

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

у меня ViewModels в моем приложении:

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

} 

Мой Посмотреть страницу имеющие kendoui расширения для ASp.net MVC.

@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, а также не дано никому ened, чтобы положить конец тому, как использовать расширения в форме и как опубликуйте данные.

Если кто-то работал в том же окружении или в любом направлении, как это сделать, пожалуйста, предложите мне.

ответ

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' с парным значением (в зависимости от того, что вы выбрали в списке) будет отправлено на контроллер.