フォームを送信する前に、ユーザーがデータベースにユーザー名がすでに存在するかどうかを確認できるコードを書いています。これは、テキストボックスから値を取得し、文字列パラメーターを使用してActionResultメソッドを呼び出すajaxリクエストに渡すonkeyupイベントハンドラーで機能します。私の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");
}
私は何が間違っているのですか?どんな提案でも大歓迎です。