为免我说这个循环有一个观点:
@foreach (var item in Model.Blogposts)
{
@item.Id
@Html.JQueryUI().Datepicker("Date")
}
所以我得到了一个Id,还有一个从datePicker中选择的日期。有人可以告诉我如何将这两个值传递给加载方法的Ajax吗?
$(".setDate").click(function () {
})
.load("/Home/Method?id=" + $(this).data("@itemID"));
});
到目前为止,我的工作方式是否正确?帮助赞赏。谢谢!
编辑: 这是我想传递值的方法:
public ActionResult SetDate(string valuefromDatePicker, string itemId)
{
//Code that updates the Time-property
//This I can figure out
return RedirectToAction("Test");
}
这应该意味着视图应该是这样的:
@Html.JQueryUI().Datepicker("Date", new { data_url = Url.Action("SetDate", "Home", new { id = item.Id }) })
我是否还应该添加一个提交按钮并将其命名为.setDate?
答案 0 :(得分:1)
您似乎正在使用一些不属于ASP.NET MVC的自定义@Html.JQueryUI().Datepicker
扩展方法。您至少应该提到您正在使用的自定义库。通常,大多数jQuery UI辅助方法都具有htmlAttributes
参数的重载。这样您就可以添加自定义data-*
属性,以便稍后在javascript代码中使用这些属性。请参阅您正在使用的库的文档,了解如何指定自定义HTML属性,但您的代码可能与以下内容类似:
@foreach (var item in Model.Blogposts)
{
@item.Id
@Html.JQueryUI().Datepicker("Date", new { data_url = Url.Action("Method", "Controller", new { id = item.Id }) })
}
然后在你的javascript文件中:
$('.setDate').click(function () {
var url = $(this).data('url');
$('#result').load(url);
});