我想使用以下代码发出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)
的值(用户输入的值)而不是传递静态值,我该怎么办?
答案 0 :(得分: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>