MVC 3 Like Remote属性

时间:2011-08-03 17:08:32

标签: c# asp.net-mvc asp.net-mvc-3

我的功能类似于Remote属性,但不是用于验证,而是用于更新其他字段示例:

public class MyModel
{
  public string Name{get;set;}
  public string Surname{get;set;}

  [RemoteUpdate("Name,Surname")]
  public string FullName{get{return Name + " " + Surname}}
}

在这种情况下,FullName将只是一个标签。如果有人关注NameSurname字段,我希望FullName更新。

这可能吗?

2 个答案:

答案 0 :(得分:1)

我建议您使用javascript在客户端完全实现。

这是使用jQuery的一个非常基本的例子:

<html>
<head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js"></script>
</head>
<body>
    <form>
        Name:
        <input id="name" type="text"/>
        Surname:
        <input id="surname" type="text"/>
        <span id="fullname"></span>
    </form>

    <script type="text/javascript">
        jQuery(document).ready(function() {
         $('#surname, #name').keyup(function() { $('#fullname').text($('#name').val() + ' ' + $('#surname').val()); });
        });
    </script>
</html>

keyup事件会更新每个键击的span标记。如果您只想在离开文本框时更新它,可以使用change事件。

答案 1 :(得分:0)

当客户端文本框失去焦点(即模糊)然后调用远程URL来执行您需要的任何操作时,您需要使用jQuery .ajax()调用或.get()操作。我没有在这里将任何参数传递给get请求(你可以),当然这是一个通用的例子 - 但这个想法是关于如何进行远程调用



 <input id="surname" type="text"/>
 <input id="fullname" type="text"/>

<script>
$('#surname').blur(function() {
 $.get('remotefunctions/index', function(data) {
   $('#fullname').html(data);
 });
});
</script>