[英]T4MVC url.action in jquery /view
這可能是也可能是不可能的(並且很可能在文檔中,但我只是錯過了它)。
如何在我的視圖中使用T4MVC構建Url.Action(),這將允許我使用jQuery選擇器。 我一直在嘗試以下(在我的javascript中)沒有成功:
function cancelHoldBooking() {
var url = '<%= Url.Action(MVC.FundProperty.CancelLock($("#propertyid").val())) %>';
// other code omitted for brevity
}
我能夠成功地做到以下幾點:
function cancelHoldBooking() {
var url = '<%= Url.Action("CancelLock", "FundProperty") %>';
url += "?id=" + $("#propertyid").val();
// other code omitted for brevity - in this case
// **I could of course have used the**:
// var params = {id: $('#propertyid').val()};
// **object**
}
我知道當答案到來時,這將是一個'doh'時刻,但對於我的生活,我無法弄清楚這一點!
干杯...
[編輯] - 我想補充一點,如果我省略MVC.FundProperty.CancelLock()id參數並試圖通過$ ajax調用發送params對象,那么編譯器會抱怨調用中缺少的參數。 因此,我不能通過在CancelLock()調用中調用$ ajax params對象而沒有參數來繞過javascript mish-mash。 令人沮喪的:(
我認為你試圖以一種無法工作的方式混合客戶端和服務器代碼。 :) <%= ...%>塊是純服務器端代碼,因此它不能使用JQuery選擇器。 使用T4MVC可以做的最好的事情可能是:
function cancelHoldBooking() {
var url = '<%= Url.Action(MVC.FundProperty.CancelLock()) %>';
url += "?id=" + $("#propertyid").val();
}
它仍然可以保存您的操作和控制器名稱的文字字符串,但不會幫助您使用該參數。
您必須意識到在服務器上處理<%= ... %>
而在調用函數cancelHoldBooking
時在客戶端上運行$("#propertyid").val()
。
解決問題的一種方法是:
function cancelHoldBooking() {
var url = '<%= Url.Action(MVC.FundProperty.CancelLock(999)) %>'; // Provide a magic number
url += url.replace('999', $("#propertyid").val()); // Replace the magic number
// other code omitted for brevity - in this case i could
// of course have used the params {id: $('#propertyid').val()} object
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.