簡體   English   中英

jquery / view中的T4MVC url.action

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM