将值从视图传递到Ajax

时间:2014-07-14 20:38:46

标签: ajax asp.net-mvc

为免我说这个循环有一个观点:

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

1 个答案:

答案 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);
});