2013-04-18 72 views
2

有沒有什麼辦法可以將.append()函數中的html.helper。Jquery .append()&Html.Helper

success: function (html) { $("#Resultaatsgebied").append(' <li>@Html.TextBoxFor(item => Model.RG1)<ul id="Concretisering" class="subList"><li>@Html.TextBoxFor(item => Model.RG1sub1)</li></ul>@Html.ActionLink("+", "index", null, new { id = "addConcretisering" })</li>'); } 

這個工作,但只是作爲一個字符串,而不是控制

編輯:

這工作了,但會產生誰是ActionLink的沒有。 我在我的視圖中有相同的actionlink默認值,並且在那裏有效。 但是對於生成的,我認爲他只是不執行ajax調用?

+1

這是因爲這是在客戶端執行,而不是在服務器 – 2013-04-18 07:07:54

+0

所以它不能被修復? – 2013-04-18 07:09:28

+0

我不知道關於asp.net,但我認爲它有一個片段的概念,你可以創建一個html片段並將其返回給客戶端 – 2013-04-18 07:16:03

回答

2

如果你的代碼是在Razor視圖,你可以把進入括號內你的剃鬚刀代碼是這樣的:

success: function (html) { 
    $("#Resultaatsgebied").append(' <li>@(Html.TextBoxFor(item => Model.RG1))<ul id="Concretisering" class="subList"><li>@(Html.TextBoxFor(item => Model.RG1sub1))</li></ul>@(Html.ActionLink("+", "index", null, new { id = "addConcretisering" }))</li>'); 
} 
+0

爲任何人做過這項工作? MVC 5剃鬚刀(cshtml)不適用於我 – 2016-07-07 20:45:07

0

我想你不能在純Javascript中做到這一點。你爲什麼不把AJAX的返回數據設置爲HTML,你可以將它設置爲你想要的任何div。例如,在你的情況:

$("#Resultaatsgebied").html(html); 
0

可能是較好的拼接像這樣(不知道,但你可以嘗試):

success: function (html) { 
    $("#Resultaatsgebied").append(
      '<li>' + @Html.TextBoxFor(item => Model.RG1) + 
      '<ul id="Concretisering" class="subList"><li>' + 
      @Html.TextBoxFor(item => Model.RG1sub1) + 
      '</li></ul>' + 
      @Html.ActionLink("+", "index", null, new { id = "addConcretisering" }) + 
      '</li>'); 
}