繁体   English   中英

如何在url.action .NET MVC中从Kendo网格发送参数令牌

[英]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 ,因此您应该有一个用于存储所需IdModel 由于您未提供任何代码,我只是在猜测您需要做的是:

@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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM