2012-10-16 58 views
0

我想將2個參數與ajax函數一起傳遞給控制器​​動作,但是我使用它的代碼不工作。 該操作被調用但沒有參數;下面的代碼有什麼問題?請幫忙。 謝謝!將jquery參數傳遞給控制器​​動作

視圖代碼:

 <fieldset> 
      @Html.Label("Start date: *") 
      @Html.TextBoxFor(model => model.startDate, new { Class = "calendar", data_mini = true, data_role = "datebox", data_options = "{\"mode\":\"calbox\",\"useNewStyle\": true,\"overrideStyleClass\": \"calendar\",\"fieldsOrderOverride\": [\"d\",\"m\",\"y\"],\"headerFormat\":\"%A,%d, %-m, %Y\",\"dateFormat\":\"DD-MM-YYYY\",\"useTodayButton\":true}" }) 
     </fieldset> 
     <fieldset> 
      @Html.Label("End date: *") 
      @Html.TextBoxFor(model => model.endDate, new { Class = "calendar", data_mini = true, data_role = "datebox", data_options = "{\"mode\":\"calbox\",\"useNewStyle\": true,\"overrideStyleClass\": \"calendar\",\"fieldsOrderOverride\": [\"d\",\"m\",\"y\"],\"headerFormat\":\"%A,%d, %-m, %Y\",\"dateFormat\":\"DD-MM-YYYY\",\"useTodayButton\":true}" }) 
     </fieldset> 
     <fieldset> 
      @Html.Label("Submited: *") 
     </fieldset> 
     <a data-role="button" id="search" name="search" data-theme="a" class="book ui-btn ui-btn-corner-all ui-shadow ui-btn-up-a"> 
     <span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Search</span></span></a> 

Jquery的代碼:

<script type="text/javascript"> 
$("#search").click(function() { 
    GetNewDaysList(); 
    }); 
//gets elements for the selected dates 
function GetNewDaysList() { 
var action = '@Url.Action("GetNewDays", "ApproveWork")'; 
var criteria = new Array($("#startDate").val(),$("#endDate").val()); 
    var opt = { 
     type: "GET", 
     data: { criteria: criteria }, 
     url: action, 
     success: DaysListSuccess, 
     error:DaysListFailed 
    }; 
    jQuery.ajax(opt); 
} 

    function DaysListSuccess(data) { 
    if (data != undefined) { 
     $.mobile.hidePageLoadingMsg(); 
     $('ul').hide(); 
     $("#employeeDays").html(data).trigger('create'); 
     $("#searchSection").show(); 
     $("#employeeDays").show(); 
    } 
} 

    function DaysListFailed() { 
// 
} 
}); 

控制器代碼:

[HttpGet] 
     public ActionResult GetNewDays(IEnumerable<string> criteria) 
    { 
     List<string> criteriaList = criteria.ToList(); 
     DateTime start = DateTime.ParseExact(criteriaList[1],"dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture); 
     string startToString = start.ToString("yyyyMMdd"); 
     DateTime end = DateTime.ParseExact(criteriaList[2], "dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture); 
     string endToString = end.ToString("yyyyMMdd");    
     List<string> daysList = new List<string>(); 
     var model = new ApproveWorkModel(); 
     model.daysList = daysList; 
     return PartialView ("EmployeeDays",model); 
    } 
} 

回答

1

使用這樣的:

var opt = { 
    type: "GET", 
    data: { 
      startDate: $("#startDate").val(), 
      endDate: $("#endDate").val() 
    }, 
    url: action, 
    success: DaysListSuccess, 
    error:DaysListFailed 
}; 

和控制器:

public ActionResult GetNewDays(string startDate, string endDate) 
+0

是的,這是工作。謝謝。 – pisi

相關問題