我想通过@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()