2014-11-08 36 views
3

我有一個文本框來選擇日期,並且在剃刀頁面中有一個動作鏈接重定向到另一個帶日期值的頁面作爲參數之一。 有沒有什麼辦法可以在用戶更改日期時動態更改actionlink的值。 我的Razor視圖就像更改來自Javascript的動作鏈接參數

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

有沒有辦法做到這一點?

+0

請告訴我操作方法(參數名稱)的簽名? – 2014-11-08 04:37:29

+0

約會出席/添加?id = model.id&date = 2014-11-08 05:06:52

回答

2

,您可以更新使用

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

注意到這一假設你給的鏈接一個id的鏈接href屬性

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

您可以更改使用javascript的日期值

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

在View: -

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

在控制器: -

public ActionResult Add(int ID, DateTime date)