如何在url.action.NETMVC中从剑道网格发送参数令牌

How to sent parameter token from kendo grid, in url.action .NET MVC

本文关键字:网格 令牌 参数 url action NETMVC      更新时间:2024-05-30

我想通过@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与我项目的其他功能相冲突。

----第二种解释——对不起我的英语

我有一个网格。它有id列。我选择一行,然后按详细信息按钮。一个窗口打开。那里有一个下载链接。此链接调用BasvuruController的下载功能。此函数需要一个Id参数。我找不到如何将此选定的行Id发送到此函数。

----剑道网格代码----

@(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"))
)

)

------返回所选网格索引Id的JavaScript函数----

function basvuruId(){
    var grid = $("#basvurular").data("kendoGrid");
    var rows = grid.select();
    var BasvuruId=grid.dataItem(rows).Id;
    return BasvuruId;
}

当您单击详细信息按钮时,您需要将id(行值)传递给该请求,然后在您的操作中获得该值,在您的动作中使用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,因此您应该有一个Model,用于存储所需的Id。由于您没有提供任何代码,我只是猜测您需要做的是:

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