【发布时间】:2018-03-23 04:14:04
【问题描述】:
我有 2 个 DropDownList,第一个是项目,第二个是用户。该项目没有直接的列用户,但有组列,并且在用户中也有组列。所以我的查询是这样的,
public ActionResult Create(string value){
//This is to shows ProjectList In Dropdown
var list = db.Projects.ToList().Select(x => x.Name);
IEnumerable<string> ProjectName;
ProjectName = list;
ViewBag.ProjectName = ProjectName;
// This is to show UsersList in Dropdown
var group = db.Projects.Where(x => x.Name == value).Select(y => y.GroupDev).FirstOrDefault();
string NameGroup = group;
var listuser = db.UsersModels.ToList().Where(x => x.GroupName == NameGroup).Select(y => y.Email);
IEnumerable<string> TaskUser;
TaskUser = listuser;
ViewBag.Users = TaskUser;
return View();
}
所以我的工作流程将是这样的,首先我从下拉列表中选择项目名称,然后我将使用 JQuery 从我的 DrowpDon 中获取值,然后我根据项目名称选择组名。然后我创建 IEnumerable 以显示与 GroupName 匹配的所有用户。现在我不知道为什么它不起作用,是因为我的逻辑错误?还是我的 Jquery 错了? 这是我的 Jquery 来做到这一点,
$(document).ready(function () {
$('#Project').change(function () {
var self = $(this);
var value = $('#Project option:selected').text();
$.ajax({
url: '/TaskModels/Create',
data: {
value: value
},
type: 'POST',
});
});
});
这是我的下拉菜单,
<div class="form-group">
@Html.LabelFor(model => model.Project, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(m => m.Project, new SelectList(ViewBag.ProjectName, "Project"), "Pilih Project ")
@Html.ValidationMessageFor(model => model.Project, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.User, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(m => m.User, new SelectList(ViewBag.Users, "User"), "Pilih User")
@Html.ValidationMessageFor(model => model.User, "", new { @class = "text-danger" })
</div>
</div>
我已经在我的脚本部分中添加了我的脚本,
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script src="~/Custom_Script/DropDownListenere.js"></script>
}
任何人都可以在这里提供帮助吗?我假设这是因为我的 jquery,是因为我不熟悉那种语言。
【问题讨论】:
-
您的 ajax 调用不会对您的
Create()方法返回的视图执行任何操作。但无论如何,你的代码是不正确的。如何实现级联下拉列表参考this DotNetFiddle -
所以我不会在我的 ajax 中返回选定的选项?
-
将以下内容添加到您的视图中 -
<div id="test"></div>然后将以下内容添加到 ajax -success: function(response) { $('#test').html(response); }- 然后您就会明白 :) 研究 DotNetFiddle -
它仍然无法正常工作,我需要的是 ajax 来返回我选择的值,仅此而已。也许我需要创建部分视图?因为一旦我为 IsDone 创建了复选框,并且当复选框被选中时,文本装饰将是直通的,并且在我使用局部视图之前,我需要在动态更改文本之前引用页面。
-
学习小提琴中的代码!!!
标签: c# jquery asp.net asp.net-mvc asp.net-mvc-5