2013-05-27 92 views
1

javascript代碼我在型號添加使用jQuery

public CodeString {get; set;} 

包含字符串值,這樣的事情

<SCRIPT src="http://demo.com/add/091221"> </script><SCRIPT src="http://demo.com/add"> </script> 

我想碼流屬性的值添加到視圖的主體部分的屬性。我看到CodeString Value將其分配給隱藏字段並提醒隱藏字段。但腳本沒有被添加到頭部分。我試圖按如下方式使用此隱藏字段:

 $(document).ready(function() { 
     $('head').append($("#PixelCodeString").val()); 
}); 

仍然沒有在生成的html頁面中看到腳本標記。人們在這發生了什麼問題?有任何想法嗎?

+0

http://jsfiddle.net/Spokey/3Ubqv/ - 似乎是工作的罰款,你得到你的控制檯任何錯誤? – Spokey

回答

0

如果只是查看源代碼,那麼你將無法看到的部分,因爲它是通過客戶端代碼中加入..(查看源將只顯示哪些從服務器發送

你可以使用Firebug看到直播DOM,你會發現它..

一個簡單的測試與

<input id="code" value="<script>alert('test');</script>"/> 

$('head').append($('#code').val()); 

http://jsfiddle.net/gaby/57AgH/

1

一個問題工作正常:你把原始值出現,以避免逃避<

無論如何,您不需要將代碼放在隱藏字段中,也不必將腳本放在<head>標記中:您可以簡單地輸出該屬性的內容。例如,如果您使用的剃刀:

@Html.Raw(Model.CodeString) 

在一個側面說明,如果我是你,我會使用來自jQuery的getScript()。這樣我可以稍後加載我所有的腳本。要做到這一點,您需要將您的財產更改爲Url腳本的List<>,併爲每個腳本使用getScript。

+0

完美... Tallmaris ...我正在挖掘所有jQuery的東西來做到這一點,但它真的很容易這樣做..非常感謝... :) –

0

你的CS頁面上

public CodeString {get; set;} 
string script="</script>$(document).ready(function() { 
     $('head').append($("#CodeString").val()); </script>" 

}); 
Page.ClientScript.RegisterStartupScript(typeof(Page), "Your script", script); 
0
<script type="text/javascript"> 
$(document).ready(function(){ 
     var myCar='@ViewBag.Car'; // Here i am trying to access the ViewBag here 
     $("#myCarDiv").html(myCar); 
}); 
</script> 
<div id="myCarDiv"></div>