Asp.net mvc 当我在编辑器模板中为网格弹出窗口创建设置元素值时,将发布到控制器的内容设置为null

Asp.net mvc 当我在编辑器模板中为网格弹出窗口创建设置元素值时,将发布到控制器的内容设置为null,asp.net-mvc,kendo-ui,kendo-grid,Asp.net Mvc,Kendo Ui,Kendo Grid,在我看来,有两个网格。当我在第一个网格中选择一行时,第二行将根据第一行绑定。 我要做的是从第一个中获取公共参数,在第二个中使用,在只读或禁用输入中创建模板。我的问题是,输入元素从第一个网格获取参数,但不要发布到控制器 控制器功能 [AcceptVerbs(HttpVerbs.Post)] public JsonResult DonemKursSinifiOlustur([DataSourceRequest] DataSourceRequest request, DonemKursSinifi m

在我看来,有两个网格。当我在第一个网格中选择一行时,第二行将根据第一行绑定。 我要做的是从第一个中获取公共参数,在第二个中使用,在只读或禁用输入中创建模板。我的问题是,输入元素从第一个网格获取参数,但不要发布到控制器

控制器功能

[AcceptVerbs(HttpVerbs.Post)]
public JsonResult DonemKursSinifiOlustur([DataSourceRequest] DataSourceRequest request, DonemKursSinifi model,string DonemId, string DersId, string EgitmenId )
{

    if (model != null && ModelState.IsValid)
    {
        Helper.Islemci.DonemKursSinifiTanimla(model);
    }
    return Json(new[] { model }.ToDataSourceResult(request, ModelState));
}
model.DonemId、model.DersId、model.EgitmenId和DonemId、DersId、EgitmenId为空

编辑网格创建和更新的模板视图

@model Kurslar.Models.DonemKursSinifi
@using (Html.BeginForm("DonemKursSinifiOlustur","Tanim",FormMethod.Post))
{
<table>
        <tr>
            <td>
                Lütfen Gün ve Saati Belirtiniz:
            </td>
            <td>
                @Html.Kendo().AutoCompleteFor(m=>m.Tanim)
            </td>
        </tr>
        <tr>
            <td>
                Donem :
            </td>
            <td>

                @Html.Kendo().AutoCompleteFor(m=>m.DonemBaslangicBitis)
                @Html.HiddenFor(m => m.DonemId)
            </td>
        </tr>
        <tr>
            <td>
                Ders Adı:
            </td>
            <td>

                @Html.Kendo().AutoCompleteFor(m=>m.DersAdi)
                @Html.HiddenFor(m => m.DersId)
              </td>
        </tr>
        <tr>
            <td>
                Eğitmen
            </td>
            <td>
                @Html.Kendo().AutoCompleteFor(m=>m.EgitmenAdiSoyadi)
                @Html.HiddenFor(m => m.DonemId)

            </td>
        </tr>
    </table>}
*如果需要,我的模型*


好的,您可能已经在网格中重复了id,并且在相同的表单中具有相同的名称属性来执行此操作:

@Html.HiddenFor(m => m.DersId)
也许你可以这样做:

表格:


感谢您的回复,但我需要在父视图中用javascript填充AutoCompleteFor的值。当我填充这些值时,同样的问题再次发生,并且如果我删除form.submit(),我可以填充必须手动填充的输入,但参数未发布到控制器。如果我不删除form.submit(),当我单击“新建”按钮时,它会立即开始创建操作,我甚至看不到表单
public class DonemKursSinifi
{
    [Key]
    [Required]
    [PersistentProperty(IsAutoIncremented = true)]
    public int Id { get; set; }

    [PersistentProperty]
    public string Tanim { get; set; }

    [PersistentProperty]
    public int DonemId { get; set; }

    [PersistentProperty]
    public int DersId { get; set; }

    [PersistentProperty]
    public int EgitmenId { get; set; }

    [PersistentProperty]
    public int KontenjanSayisi { get; set; }

    [PersistentProperty]
    public int TarifeId { get; set; }

    [PersistentProperty]
    public int IslemNo { get; set; }  // default 1

    public string EgitmenAdiSoyadi { get; set; }

    public string DersAdi { get; set; }

    public string DonemBaslangicBitis { get; set; }
}
@Html.HiddenFor(m => m.DersId)
@model Kurslar.Models.DonemKursSinifi
@using (Html.BeginForm("DonemKursSinifiOlustur","Tanim", FormMethod.Post, new { id="myform"}))
{
  <input type="hidden" value="" name="Tanim" />
  <input type="hidden" value="" name="DonemBaslangicBitis" />
  <input type="hidden" value="" name="DonemId" />
  <input type="hidden" value="" name="DersAdi" />
  <input type="hidden" value="" name="DersId" />
  <input type="hidden" value="" name="EgitmenAdiSoyadi" />
  <input type="hidden" value="" name="DonemId" />
}
<table>
    <tr>
        <td>Lütfen Gün ve Saati Belirtiniz:</td>
        <td>@Html.Kendo().AutoCompleteFor(m=>m.Tanim)</td>
    </tr>
    <tr>
        <td>Donem :</td>
        <td>@Html.Kendo().AutoCompleteFor(m=>m.DonemBaslangicBitis) @Html.HiddenFor(m => m.DonemId)</td>
    </tr>
    <tr>
        <td>Ders Adı:</td>
        <td>@Html.Kendo().AutoCompleteFor(m=>m.DersAdi) @Html.HiddenFor(m => m.DersId)</td>
    </tr>
    <tr>
        <td>Eğitmen</td>
        <td>@Html.Kendo().AutoCompleteFor(m=>m.EgitmenAdiSoyadi) @Html.HiddenFor(m => m.DonemId)</td>
    </tr>
</table>
var 
    grid = $("#donemGrid").data("kendoGrid"),
    rows = grid.select(),
    form = $('#myform');

form.find('input[name="DonemBaslangicBitis"]').val(grid.dataItem(rows).DonemBaslangicBitis);
form.find('input[name="DersAdi"]').val(grid.dataItem(rows).DersAdi);
form.find('input[name="EgitmenAdiSoyadi"]').val(grid.dataItem(rows).EgitmenAdiSoyadi);
form.find('input[name="DonemId"]').val(grid.dataItem(rows).DonemId);
form.find('input[name="DersId"]').val(grid.dataItem(rows).DersId);
form.find('input[name="EgitmenId"]').val(grid.dataItem(rows).EgitmenId);

form.submit();