2010-10-22 11 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标记代码。

由于交互发生在客户端,无任何回发,您使用的代码不会帮助您实现目标。

相关问题