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();