我要在系统中查找用户的搜索字段...我将在该字段中写入用户名,而ajax函数会将名称从搜索字段传递给控制器中的方法,此方法将返回所有用户的numerable那些具有相同的名称...。当我传递用户ID时,它可以成功工作,并且我获得了特定的用户,因为我传递了int值...但是当我传递字符串时出现了问题...所以如何传递用户名到使用ajax的控制器。
这是视图标记
<div class="form-group">
<label asp-for="ResearchAuthor.ApplicationUserId" class="control-label"></label>
<input id="user" asp-for="ResearchAuthor.ApplicationUserId" class="form-control" asp-items="ViewBag.ApplicationUserId" />
<a id="srch" class="btn btn-success">بحث</a>
</div>
<select id="add" asp-for="ResearchAuthor.ApplicationUserId" class="form-control" asp-items="ViewBag.ApplicationUserId">
<option>@Localizer["إختر المستخدم"]</option>
</select>
和ajax代码
<script>
$("#add").empty();
$(document).ready(function () {
$("#srch").click(function () {
$("#add").empty();
$("#add").append($('<option>', { text: "@Localizer["إختر نوع المقالة"]" }));
//if ($("#user").val() > 0) {
var useroptions = {};
useroptions.url = "/@CultureInfo.CurrentCulture.Name/ResearchAuthors/GetUsers/";
useroptions.data = JSON.stringify($("#user").val(););
useroptions.success = function (data) {
$.each(data, function (index, row) {
$("#add").append($('<option>', { value: row.value, text: row.text }))
});
};
useroptions.error = function () { alert("@Localizer["UniError"]"); };
$.ajax(useroptions);
//}
});
});
</script>
以及控制器中的功能:
[AllowAnonymous]
public JsonResult GetUsers(string SearchString)
{
var users = new SelectList(_context.ApplicationUsers.Where(u=>u.ArName==SearchString), "Id", "ArName");
return Json(users);
}
答案 0 :(得分:-1)
您必须在后端检查它。如果可以,则为int,那么可以,但是如果可能,则尝试将其转换为int。