ajax - 将字符串从 ajax 发送到控制器,结果为 null
问题描述
I have a dropdown that iterates over an enum list, when chosen it sends the enum as a string.(as 'this')
然后我获取该对象的值以获取字符串值。
这是它的样子,
选择下拉菜单:
<select id="userServicesDropDownAuth" class="browser-default custom-select"
asp-for="Service" onchange="validateUserAuth(this, '@username', '@password')">
@{
<option style="display:none"></option>
foreach (var item in services)
{
<option>@item.ToString()</option>
}
}
</select>
ajax 调用:
var service = service.value;
$.ajax({
url: '/Actions/CheckServiceValidation',
method: 'POST',
data: service ,
dataType: 'text',
contentType :'text',
success: function (data) {
最后是控制器方法:
[HttpPost]
public bool CheckServiceValidation(string service)
{
var session = SessionManager.GetSession(service);
if (session== service)
return true;
else return false;
}
在控制器方法中收到的字符串为空,当我将它从字符串更改为服务对象(枚举)时,它总是返回第一个索引。
枚举类:
public enum Service : int
{
Badoo = 0,
Tinder = 1,
Grinder = 2,
OkCupid = 3
}
我究竟做错了什么?
编辑:
即使我从下拉列表中选择索引 3,传递给控制器的服务也始终为 0。
解决方案
在我看来,它总是返回下拉列表的第一项。您添加具有值的第一个选项:
<option style="display:none"></option>
您需要将 var 设置为使用下拉列表中的选定选项。就像是:
var service = Service.options[Service.selectedIndex].text;
推荐阅读
- ms-access - 使用电子邮件更新 Access 表?
- apache-spark - 如何保存 Spark sklearn 模型的模型?
- python - Python 字符串格式化 - TypeError
- ruby-on-rails - 模型 has_many 的另一个模型(预定义值集)
- angular - Angular 7 - 重用组件来显示过滤的集合
- java - 在我的组件树窗口中找不到设备屏幕选项
- javascript - 为什么 tooltipPosition = "fixed" 不起作用 (amCharts v4)
- mysql - 如何从 mysql 5.0 中删除或删除重复的整体
- qt - 如何在数据更改时显示 QAbstractListModel 的单个项目并更新 Gui
- html - 垂直对齐网格内右对齐的导航栏项目