2011-10-20 18 views
7

這裏是我的jQuery代碼剃刀:有什麼辦法可以在剃刀內使用jQuery代碼嗎?

$("#GroupC_grup_name").attr('value', '@foreach (SelectListItem sel in (SelectList)ViewData["Gruplar"]){ @sel.Text }') 
    $("#GroupC_id").attr('value', '@foreach(SelectListItem sel in (SelectList)ViewData["Gruplar"]){ @sel.Value }') 

我想合併在一起這些,在我不想兩次呼籲ViewData["Gruplar"]

我可以這樣做嗎?

@foreach(SelectListItem sel in (SelectList)ViewData["Gruplar"]){ 
    @:$("#GroupC_grup_name").attr('value', '@sel.Text'); 
    @:$("#GroupC_id").attr('value', '@sel.Value'); 
} 

我試過了所有我能想到但仍然無法達到我想要的。

+0

你的代碼有點混亂,因爲你在這兩個例子中的值都會變得很奇怪。在第一個示例中,您只是將列表中的所有值輸出到元素屬性'value'中,第二個示例中您將一次設置所有值,但它始終是最後設置的值。你想要完成什麼? – Buildstarted

+0

@BuildStarted此選擇列表只包含1個項目..所以它不會被過分糾纏。請仔細閱讀該主題。我想知道如果我可以把一些jquery代碼放在'script type =「text/javascript」language =「javascript」> @Razor {** jQuery **}'這就是我的問題來解決。那裏的選擇列表只是一個使用示例。 –

回答

9

我仔細閱讀並理解你想要做什麼。然而,你的例子是令人困惑的。 (似乎所有人都回答)

你在第二個例子中所做的工作應該很好,你可以將你的jQuery包裝在<text></text>元素中,如果這也有幫助的話。如果只有一個值,你可以只是

<script type='text/javascript'> 
    @{ var x = ((SelectList)ViewData["Gruplar"]).First(); } 
    $("#GroupC_grup_name").attr('value', '@x.Text'); 
    $("#GroupC_id").attr('value', '@x.Value'); 
</script> 

有任何數量的方式,你可以在jQuery中完成剃鬚刀。它基本上與使用html的剃鬚刀一樣。

它你想要執行剃鬚刀在客戶端那麼這是不會發生的。 Razor在發送給客戶端之前被執行。

5

你建議應該工作的代碼,下面的代碼使用的字符串數組,而不是一個SelectList但原則應該是相同的,下面的代碼已經被測試和工程 -

@{String[] testarr = {"hello","bye"};} 
@foreach(String sel in testarr){ 
@:$("#GroupC_grup_name").attr('value', '@sel'); 
@:$("#GroupC_id").attr('value', '@sel'); 
} 
+0

我不認爲他想爲'#GroupC_grup_name'覆蓋'value'屬性X次數 – jgauffin

+0

首先,我不會覆蓋我即將做的動作!另外我的選擇列表僅用於攜帶數據值和文本字段,它的列表**是**,但它只包含** 1 **項目。所以我正在嘗試在'razor'內注入一些'jquery code',並感謝'@ ipr101'與'string array'一起工作,一些覆蓋作爲'@ jgauffin'表示它覆蓋!所以它應該像('@ sel.Value'到'GroupC_id'和'@ sel.Text'到'GroupC_grup_name'),如果你可以用一個像ViewData [「Gruplar」]這樣的數據載體來顯示它的方法「我想知道它。 –

1

據我瞭解它,你想在選擇SELECT項目時更新元素?

創建一個常規的選擇列表,並添加以下的jQuery代碼:

<script type="text/javascript"> 
$(function() { 
    $('#selectListId').change(function() { 
     $selectedItem = $("option:selected", this); 
     $("#GroupC_grup_name").val(selectedItem.html()); 
     $("#GroupC_id").val(selectedItem.val()); 
    }); 

}); 
</script> 
+0

我們的代碼是值得的,但這不是我的問題! 嗯,我想我會被誤解。 selectlist無事可做,但得到我的價值在這裏.. 即時嘗試添加jQuery代碼內剃刀這就是我的問題是否有辦法做到這一點?如果我使用selectlist或模型來檢索某些數據,這並不重要。 –

+0

由於Razor代碼在Web服務器中運行並且jQuery代碼在Web瀏覽器中運行,因此瞭解您想要執行的操作非常重要。他們不能一起工作。 Razor只能生成jQuery代碼(稍後將在瀏覽器中運行) – jgauffin

相關問題