2011-08-03 54 views
0

我NEAD功能如遠程屬性,但不能用於驗證,但更新其他領域例如:MVC 3如遠程屬性

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

您有服務器端代碼與客戶端操作混淆。像這樣的功能將需要生活在JavaScript中。如果你創建了這個屬性,它會將javascript寫入頁面。 –

+0

我需要根據屬性生成的JavaScript將這樣做。對不起,如果我不那麼清楚。 –

回答

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事件。

0

當客戶端文本框失去焦點(即模糊)然後調用遠程URL來執行任何您需要的操作時,您需要使用jQuery .ajax()調用或.get()操作。我沒有將任何參數傳入獲取請求(您可以),當然這是一個通用示例 - 但您的想法在於如何進行遠程調用

 


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

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

 
+0

好吧我沒有那麼清楚根據屬性我需要生成JavaScript,將調用serverside代碼控制器和更新全名。 –