2012-01-10 55 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>