2013-12-20 61 views
0

我想要做的是我有2個選擇框設置在視圖中一個選擇器持有我不同的配置文件源。第二個根據您選擇的來源保存配置文件名稱。問題在剃鬚刀內調用javascript函數如果語句

我的問題是我想要一個特定的值,放在數據庫中對照配置文​​件源進行測試,所以我根據所選源選擇正確的配置文件。

這就是我目前的觀點:

<div class="managerField"> 
     <label for="Source Selector" class="label">Select Source:</label> 
     <select name="SourceSelector" form="PostScheduler" class="select-style" onchange="sourceSelect(this.value)"> 
      <option value="" selected>Please Select Source</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
     </select> 
    </div> 
    <div class="managerField"> 
     <label for="ProfileSelector" class="label">Select Profile:</label> 
     <!-- POPULATE BASED ON SOURCE SELECTED --> 
     <select name="Profile Selector" class="select-style"> 
      @foreach (var p in Model.SocialProfiles.Where(pr => pr.SocialProfileTypeID == sourceSelect(SourceSelector)) 
      { 
      <option value="@p.SocialProfileID">@p.ScreenName</option> 
      } 
     </select> 
    </div> 

    @section Scripts 
    { 

<script type="text/javascript"> 
    function sourceSelect(el) 
      { 
       if (el == "") return 0; // Will need to catch 
       if (el == "1") return 2; 
       if (el == "2") return 6; 
       if (el == "3") return 15; 
      } 
    } 

任何幫助,將赫然讚賞。

+0

現在運行它會發生什麼?如果將'return'語句更改爲'console.log',輸出是什麼?這種看起來很好,所以目前還不清楚問題是什麼。 – Yuck

+0

你是說你的腳本標籤中,你的if語句是一個剃鬚刀if和if javascript if。腳本部分的輸出html(瀏覽器中的查看源代碼)是什麼? –

+1

哦,你正試圖在Razor語句中使用JavaScript函數。這是行不通的。剃刀是一個視圖引擎。它只是發佈文檔(HTML,JavaScript等),但它無法訪問實際的JavaScript代碼。您需要加載這兩個列表並更改客戶端上的顯示,或者根據所做的第一個選擇使AJAX調用獲取適當的列表。 – Yuck

回答

0

Yuck實際上打在頭上,你不能在剃刀內調用JavaScript,我開發了一種新的方法,點擊通過JS調用它,並取消了剃刀。