2015-05-25 46 views
0

使用從模型和JavaScript的值一起我想使用的變量從模型:在MVC 4

Model.ActionId

和從JavaScript一個varialble(選擇下拉的指數)

$( 「#ddlMethod」)。VAL()

到如果情況一致。

我曾嘗試:

@if (Model.ActionID== 0 && $("#ddlMethod").val()== 2) 
     alert("yes"); 

另:

if (@Model.ActionID== 0 && $("#ddlMethod").val()== 2) 
     alert("yes"); 

第一分配值:

var selectedMethod = $("#ddlMethod").val(); 
    var actionId = @Model.ActionID; 
    if (actionId == 0 && selectedMethod == 2) 
     alert("yes"); 

他們沒有工作。幫幫我。

enter image description here

+0

在您嘗試使用它?在分離的腳本或頁面內?你把這個腳本放到頁面 - 最後兩個變體應該只在頁面內工作 – Grundy

+0

,bt否,它不工作 – SurajS

+0

它的工作,試試小提琴:https://dotnetfiddle.net/sGcIho – Grundy

回答

1

的簡單方法是把模型值在一個隱藏的元素像

<input type="hidden" value="@Model.ActionID" id="ActionID"/> 

,然後在你的JavaScript

var selectedMethod = $("#ddlMethod").val(); 
var actionId = $("#ActionID").val(); 
if (actionId == 0 && selectedMethod == 2) 
    alert("yes"); 

更新

if (@Model.ActionID== 0 && $("#ddlMethod").val()== 2) 
     alert("yes"); 

不會起作用,因爲你需要正確逃生剃刀代碼,將其置於一個代碼塊

@{ ... } or @if, etc. 

,並把代碼本身一個轉義序列與JavaScript混合時

@: or the <text> tag. 

嘗試

@if (<text> '@Model.ActionID' </text> == 0 && $("#ddlMethod").val()== 2){ 
     <script> 
       alert("yes"); 
     </script> 
} 
+0

你是否嘗試了你最後的建議? – Grundy

+0

@Grundy,不,有什麼不對嗎? – AmmarCSE

+0

是的,它不工作 – Grundy

1

如果你的腳本在頁面中,所以你有幾種方法可以在你的客戶端代碼中使用服務器變量:在這種情況下,它呈現爲Model.ActionID = 0

if (0 == 0 && $("#ddlMethod").val()== '2') 
    alert("yes"); 
    1. 直接使用

      if (@Model.ActionID == 0 && $("#ddlMethod").val()== '2') 
          alert("yes"); 
      

      使這個腳本標籤只有必要的行動ID喜歡

      @if (Model.ActionID == 0){ 
          <script type="text/javascript"> 
           if($("#ddlMethod").val()== '2') 
            alert("yes"); 
          </script> 
      } 
      

      在這種情況下,該sctipt呈現,只有在執行時Model.ActionID == 0

    如果在分隔的文件的腳本,然後你再有幾個辦法:

    使用隱藏域作爲建議@AmmarCSE,或保存Model.ActionID全球varibale在你的頁面

    var modelActionId = @Model.ActionID 
    

    並在腳本中使用它

    if (modelActionId == 0 && $("#ddlMethod").val()== '2') 
        alert("yes"); 
    

    注:方法val,在你的情況下,返回字符串而不是數量

  • +0

    謝謝你的解釋,但第一個不起作用。將錯誤提供爲「不正確的語法」。 '@ Model.ActinId'工作..用單引號。 – SurajS

    +0

    我檢查了小提琴,不知道最新的區別.. attched屏幕截圖..;) – SurajS

    +0

    @SurajS,你能提供一個代碼嗎?你使用什麼版本的mvc? – Grundy