我正在編寫一些代碼,用戶可以在提交表單之前檢查數據庫中是否存在用戶名。這可以通過onkeyup事件處理程序來處理,該處理程序從文本框中獲取值並將其傳遞給使用字符串參數調用ActionResult方法的ajax請求。我的SQL邏輯工作正常,我收到一個說已存在或不存在的值。MVC 3 Razor - 在Ajax請求中訪問ViewData
我有的問題是從我的控制器,我想返回值。在我的JQuery Ajax請求的成功部分,我試圖訪問我的ViewData [「索引名稱」],但我的警報顯示一個空字符串。
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");
}
我在做什麼錯?歡迎任何建議。
它的工作!我確實必須稍微改變JavaScript。有一個用戶名不是小寫字母的拼寫錯誤,但除此之外它運行得很好。謝謝! –