[英]How to sent parameter token from kendo grid, in url.action .NET MVC
我想通过@Url.Action
发送参数以进行查看
我已经尝试过类似的操作,但我不想发送默认参数。 我想发送网格选定行的id列的值。
<input type="button" value="Sınıf Listeleri Raporu" onclick="window.location.href='@(Url.Action("SinifListeleri", "Tanim", new { BasvuruId= "value"}).ToString()) ';" />
因此,如何将值设置为网格所选行的id列的值。 如果我可以将javascript函数作为返回值调用,这对我来说将非常有用。
而且我也可以使用ajax以外的任何东西,因为ajax与项目的其他功能冲突。
----第二个解释--- Sory for my English
我有一个网格。 它具有id列。 我选择一行,然后按详细信息按钮。 打开一个窗口。 那里有一个下载链接。 此链接从BasvuruController调用下载功能。 此函数需要一个Id参数。 我找不到如何将选定的行ID发送到此函数的方法。
---- Kendo网格代码----
@(Html.Kendo().Grid(Model)
.Name("basvurular")
.Columns(columns =>
{
columns.Command(command => command.Custom("ViewDetails")
.Text("Göster").HtmlAttributes(new { @onClick="ff()" })
).Width(80);
columns.Bound(p => p.KisiAdSoyad).Width(150).Filterable(f => f.Extra(false)).HtmlAttributes(new { styles = "min-length:150px" });
columns.Bound(p => p.DonemKursVeDonemSinifi).Width(200).Title("Kurs ve Şubesi").Filterable(f => f.Extra(false)).HtmlAttributes(new { styles = "min-length:200px" });
columns.Bound(p => p.BasvuruZamani).Width(150).Format("{0:yyyy/MM/dd HH:mm:ss }").HtmlAttributes(new { styles = "min-length:150px" });
columns.Bound(p => p.ToplamUcret).Width(80).Format("{0:c2}").Title("Ücret").Filterable(false).HtmlAttributes(new { styles = "min-length:80px" });
columns.Bound(p => p.DonemTanim).Width(160).Filterable(filterable => filterable.UI("DonemFilter").Extra(false)).Title("Dönem").HtmlAttributes(new { styles = "min-length:160px" });
columns.Bound(p => p.DurumKoduTanim).Width(130).Filterable(filterable => filterable.UI("DurumFilter").Extra(false)).Title("Durum").HtmlAttributes(new { styles = "min-length:130px" });
columns.Bound(p => p.Id).Visible(false);
columns.Command(command => { command.Edit().Text("Güncelle"); command.Custom("Onay").Text("Onayla/Reddet").Click("OnayEkrani"); }).Width(250).HtmlAttributes(new { styles="min-length:250px"});
})
.Events(e => e.Edit("clickUpdate").DataBound("donemFilterControl"))
.Editable(editable => editable.Mode(GridEditMode.PopUp)
.Window(conf => conf.Title("Yeni Başvuru"))
.TemplateName("BasvuruTemplate")
.DisplayDeleteConfirmation("Seçili kaydı silmek istediğinizden emin misiniz?")
)
.Pageable()
.Sortable()
.Scrollable()
.Selectable()
.Events(e => e.FilterMenuInit("al"))
.HtmlAttributes(new { style = "height:350px; width:auto" })
.DataSource(dataSource => dataSource
.Ajax()
.Read(read=>read.Action("BasvuruGridRead","Tanim"))
.Sort(sort => sort.Add("KisiAdSoyad").Ascending())
.PageSize(7)
.Filter(f => f.Add(x => x.DonemTanim).IsEqualTo(@OnlineKursKayit.Helpers.Helper.Islemci.GuncelDonemAra().GetDescription()))
.Model(model => model.Id(p => p.Id))
.Update(update => update.Action("BasvuruyuGuncelle", "Tanim"))
)
)
------ JavaScript函数,返回网格的选定索引的ID ----
function basvuruId(){
var grid = $("#basvurular").data("kendoGrid");
var rows = grid.select();
var BasvuruId=grid.dataItem(rows).Id;
return BasvuruId;
}
当您单击详细信息按钮时,您需要将ID(行值)传递给该请求,然后在action中获得该值,在action中,使用viewbag保存该值并将其传递给其他视图。 现在您有了行ID,并可以在任何要使用它的地方使用它。
function basvuruId(){
var grid = $("#basvurular").data("kendoGrid");
var rows = grid.select();
var BasvuruId=grid.dataItem(rows).Id;
window.location.href = '@(Url.Action("Download", "Basvuru").ToString())?BavuruID=' + BasvuruId;
return false;
我终于找到了。 使用javaScript函数中的httpGet完成。
您可能在View
调用Url.Action
,因此您应该有一个用于存储所需Id
的Model
。 由于您未提供任何代码,我只是在猜测您需要做的是:
@Url.Action("Download", "Basvuru",new { basvuruId = Model.YourId })
如果使用foreach迭代某种列表,则最终会得到类似以下内容:
foreach(var item in Model) {
// some code
// please be aware that calling Url.Action like this makes little sense,
// but since you didn't tell us what you are doing it's hard to guess.
// be also aware of the fact that Html.Action != Url.Action
@Url.Action("Download", "Basvuru",new { basvuruId = item.YourId })
//some other code
}
我不太确定您在哪里使用Url.Action,但是不太可能需要调用.toString()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.