2010-06-14 32 views
3

如果我有我的觀點一個文本框:ASP.NET MVC - 如何從我的視圖中的文本框中獲取值?

<div><%= Html.TextBox("Comments", Model.Comments)%></div>

我想這個文本框的內容發佈到與Ajax調用控制器。我只需要這一個值,所以我不想把整個表格都發回去。

<%= Ajax.ActionLink("update", "UpdateComments", 
       new { comments = /* ????? */ }, 
       new AjaxOptions { HttpMethod="POST" })%> 

如何獲取文本框的值?

+0

Ajax.ActionLink是一個輔助函數,它生成一個啓用JS的鏈接,通過AJAX發送數據。因爲它是在服務器端生成的,並且該值是在客戶端生成的,所以不能傳遞這樣的單個值。您必須手動編寫HTML和JS,或者提交包含此元素的整個表單(並注意不要將其嵌套到另一個表單中)。 – AlexanderMP 2010-06-14 12:20:53

+0

@Alexander:這是這裏最有用的評論。你應該提交它作爲答案。 – fearofawhackplanet 2010-06-14 12:59:47

回答

1

Ajax.ActionLink是一個輔助函數,它生成一個支持JS的鏈接,通過AJAX發送數據。因爲它是在服務器端生成的,並且該值是在客戶端生成的,所以不能傳遞這樣的單個值。您必須手動編寫HTML和JS,或者提交包含此元素的整個表單(並注意不要將其嵌套到另一個表單中)。

2

您應該使用客戶端Ajax(例如jQuery)來獲取文本框的運行時值併發布該值,而不是編寫服務器端ajax代碼。

+0

當你說「應該」時,有沒有理由說明我嘗試的方式是錯誤的,或者你認爲這不是最簡單的方法? – fearofawhackplanet 2010-06-14 13:21:10

+0

這並不容易。服務器代碼更多地是關於請求處理和響應發送,客戶端負責**請求。在這種情況下,您不希望使用表單的整頁POST,所以Ajax POST是一個合適的選擇(並且jQuery使它更容易)。 – 2010-06-14 16:08:56

0

你可以在jQuery中使用Ajax。像這樣

function FunctionName() { 
     $.Post(URl, function(data) { 

     }); 
    } 
2

使用jQuery,您可以通過以下方式檢索值。

$("#Comments").val(); 
相關問題