2012-01-10 57 views
0

我想用做POST請求下面的代碼我怎樣才能在ajaxoption POST請求的數據從輸入剃刀

<div class="editor-field" id="updateDiv" > 
    @Html.EditorFor(model => model.UserName) 
    @Html.ValidationMessageFor(model => model.UserName) 
</div> 
<div> 
    @Ajax.ActionLink("Check Availability", "ValidateUsername", "Wizard", 
     new { username = "username"}, 
     new AjaxOptions() { 
      UpdateTargetId = "msg", 
      HttpMethod = "POST", 
      LoadingElementId = "progress", 
     } 
    ) 
</div> 

但是,而不是通過一個靜態值,我想傳遞的@Html.EditorFor(model => model.UserName)值(用戶inputed價值),我該怎麼做?

回答

0

首先,它似乎在嘗試創建某種遠程驗證。這種機制已經在MVC的地方,所以你可以用DataAnnotations

http://msdn.microsoft.com/en-us/library/gg508808(v=vs.98).aspx

如果我錯了,我的假設,你可以嘗試按照以下修改您的代碼中使用它。

我會加入htmlAttributes設置ID爲這樣的鏈接去:具有到位,我們有一個直接引用這個元素

@Ajax.ActionLink("Check Availability", "ValidateUsername", "Wizard", 
    new {username = "username"}, 
    new AjaxOptions() 
    { 
     UpdateTargetId = "msg", 
     HttpMethod = "POST", 
     LoadingElementId = "progress", 
    }, new { id = "CheckAvailabilityLink" } 
) 

,所以我們可以動態地跟蹤在文本框和更新URL變化

<script type="text/javascript"> 
     $(document).ready(function() { 
      $("#UserName").keyup(function (e) { // textbox id here 

       var href = $("#CheckAvailabilityLink").attr("href").split("?", 1); 
       $("#CheckAvailabilityLink").attr("href", href + "?username=" + $(this).val()); 
       alert($("#CheckAvailabilityLink").attr("href")); 
      }); 
     }); 
    </script> 

</script>