2010-10-22 55 views
0

嘿傢伙,我正在做一個ASP.NET MVC項目只是爲了學習......並堅持在這...Html的Gett值。在ASP.NET MVC與AJAX作爲用戶交互的控制

我試圖獲得值來自Html.TextBoxFor(model => model.ShortName)並顯示在側邊www.blablabla.com/ Value,它在用戶輸入的時候。

我嘗試添加頂部的AJAX庫引用:

<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script> 
<script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script> 
<% Html.EnableClientValidation(); %> 

這裏去的unsucceed到目前爲止的代碼:提前

 <div class="editor-label"> 
      <%: Html.LabelFor(model => model.ShortName) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.ShortName) %> 
      <%: Html.ValidationMessageFor(model => model.ShortName) %> 
      This will be the name used for your short address 
      www.blablabla.com/<%: Model == null || string.IsNullOrEmpty(Model.ShortName) ? "shortName" : Model.ShortName %> 
     </div> 

感謝

回答

0

D.J是正確的 - 你想使用Javascript來做到這一點。 Model對象從服務器傳遞到視圖。一旦呈現頁面,用戶與客戶端頁面的任何交互都與模型(或服務器)無關。只有當用戶發送後續HTTP請求時(例如通過提交表單發送POST),控制器操作纔會再次涉及。

該模型用於上面的代碼示例中,用於設置元素的初始值。

要做到這一點,你會想要使用JavaScript,並可能是一個庫,如jQuery。

可以綁定文本框的按鍵事件,並將其值追加到div:

<div class="editor-field"> 
    <%: Html.TextBoxFor(model => model.ShortName) %> 
    <%: Html.ValidationMessageFor(model => model.ShortName) %> 
    This will be the name used for your short address: www.blablabla.com/<span id="shortnameLabel"></span> 
</div> 

然後這實際上做的工作:

$('#ShortName').keypress(function(event) { 
    $('#shortnameLabel').text($(this).value(); 
}); 
+0

得到它......但編輯這部分到:$('#ShortName')。keyup(function(event){$('#shortnameLabel')。text($(this).val());});謝謝! – 2010-10-23 12:50:51

1

我認爲你應該做的這通過使用JavaScript而不是使用MVC標記代碼。

由於交互發生在客戶端,無任何回發,您使用的代碼不會幫助您實現目標。

相關問題