我正在编写一些代码,用户可以在提交表单之前检查数据库中是否已经存在用户名。这通过 onkeyup 事件处理程序起作用,该处理程序从文本框中获取值并将其传递给 ajax 请求,该请求使用字符串参数调用我的 ActionResult 方法。我的 SQL 逻辑工作正常,我收到一个表示已经存在或不存在的值。
我遇到的问题来自我的控制器,我想返回值。在我的 Jquery Ajax 请求的成功部分,我试图访问我的 ViewData["index name"] 但我的警报显示一个空字符串。
Javascript代码:
function searchUsername() {
var filters = getFilterVals();
$.ajax({
url: '@Url.Action("UsernameSearch", "UserManager")',
type: "POST",
async: true,
dataType: "text",
data: "username=" + filters.username,
success: function () {
var str = '@ViewData["UserName"]';
alert(str);
$('#txtUsernameExists').val(str);
configureGui();
jQueryTableStyling();
},
error: function (data) {
}
});
}
function getFilterVals() {
filters = new Object();
filters.username = $('#createuser-usernamesearch #user_name').val();
return filters;
}
C# 控制器代码:
public ActionResult UsernameSearch(string username)
{
string output = DAL.usernameSearch(username);
ViewData["Username"] = output;
return PartialView("~/Views/Partial/_txtUsernameSearch.cshtml");
}
我究竟做错了什么?欢迎任何建议。