从Javascript更改Actionlink参数

时间:2014-11-08 04:35:18

标签: javascript jquery asp.net-mvc razor

我有一个文本框来选择日期,剃刀页面中有一个操作链接重定向到另一个页面,日期值作为参数之一。 有没有办法在用户更改日期时动态更改actionlink的值。 我的Razor视图就像

<div class="col-md-4">
    @Html.TextBoxFor(model => model.Date, new { @class = "datepicker form-control" })
    @Html.ValidationMessageFor(model => model.Date)
</div>
@Html.ActionLink("Mark Attendance", "Add", "Attendance", new { @id = @model.ClassId }, new { @class = " btn btn-primary"})

在Javascript中我能够做到

$("#Date").datepicker({
  showOn: 'both',
  altFormat: 'MM-dd-yy',
  dateFormat: 'MM-dd-yy',
  changeMonth: true,
  changeYear: true,
  yearRange: "1900:2050"
})
  .change(dateChanged)
  .on('changeDate', dateChanged);

function dateChanged(ev) {
  //How can i change the action link in a way that add an extra param date with selected value ?
}

有什么办法吗?

2 个答案:

答案 0 :(得分:4)

您可以使用javascript更改日期值

$('.btn btn-primary').attr('href', function () {
        return this.href.replace('_Parameter1', Date_Value);
          });

在视图中: -

@Html.ActionLink("Mark Attendance", "Add", "Attendance", new { @id = @model.ClassId,Parameter1='_Parameter1'}, new { @class = " btn btn-primary"})

在控制器中: -

public ActionResult Add(int ID, DateTime date)

答案 1 :(得分:2)

您可以使用

更新链接href属性
var url = $('#mylink').attr('href'); // returns "Attendance/Add/1"
function dateChanged(ev) {
  $('#mylink').attr('href', url + '?date=' + <mydatevalue>);
}

请注意,这假设您为链接指定了

@Html.ActionLink("Mark Attendance", "Add", "Attendance", new { id = @Model.ClassId }, new { @class = " btn btn-primary", new id = "mylink" })

将重定向到

public ActionResult Add(int ID, DateTime date)