【发布时间】:2017-04-03 08:30:52
【问题描述】:
我有包含公司、职位空缺、面试和问题块表的数据库。
这是它的方案
所以空缺连接到公司,面试连接到空缺,问题块连接到面试。
我实现了公司的下拉列表,当我选择公司时,空缺下拉列表更新。
这是查看的代码
<div style="width: 100%; margin-left: 20px;height: 15%;padding-top: 20px;">
@Html.DropDownList("Company", ViewBag.Companies as SelectList, "Компания", new { @class = "greeting", @style = "width:30%; margin-left:20px;" })
<select class="greeting" id="vacancy" name="id" style="width:30%; margin-left:150px;" data-url="@Url.Action("Vacancies","Questions")">
<option value="" disabled selected>Вакансия</option>
</select>
</div>
和 Ajax 调用
<script>
$(function () {
$("#Company").change(function (e) {
var $vacancy = $("#vacancy");
var url = $vacancy.data("url") + '?companyId=' + $(this).val();
$.getJSON(url, function (items) {
$.each(items, function (a, b) {
$vacancy.append('<option value="' + b.Value + '">' + b.Text + '</option>');
});
});
});
});
</script>
我有这样的视图
所以我需要什么。
我需要向控制器发出请求,并找到与 VacancyId 相关的 QuestionBlock。
所以据我了解,我需要将 VacancyId 从下拉列表传递到控制器进行一些 sql 操作并返回 JSON?
或者我该怎么做?
更新
感谢@CuriousDev 的回答,它适用于选择项目。
我还需要一件事,我需要像这样显示 Question1-Question10。
这是我的 Action 方法
public ActionResult QuestionBlocks(int vacancyId)
{
var items = db.QuestionBlocks
.Where(x => x.Interview.VacancyId == vacancyId)
.Select(x => new
{
ID = x.Block_ID.ToString(),
Question1 = x.Question1,
Question2 = x.Question2,
Question3 = x.Question3,
Question4 = x.Question4,
Question5 = x.Question5,
Question6 = x.Question6,
Question7 = x.Question7,
Question8 = x.Question8,
Question9 = x.Question9,
Question10 = x.Question10,
})
.ToList();
return Json(items, JsonRequestBehavior.AllowGet);
}
我需要如何编写 ajax 调用到后端并在 div 中显示数据?
【问题讨论】:
-
那么您的问题是什么,您已经找到了解决方案,并且您似乎知道解决方案
-
我的问题是我需要如何正确地发出获取请求以及如何在服务器端编写方法? @Curiousdev
-
这将与您在
vacancy下拉列表中所做的相同,现在在您更改vacancy的情况下,您需要填写问题而不是替换$("#Company").change(function (e) {您必须写@ 987654333@ 传递vacancyid代替companyId在这里你用适当的逻辑编写你的方法,就像你写空缺一样 -
我更新了我的帖子@Curiousdev
-
增加显示问题的区域的高度或减少行的高度,减少它们之间的填充等......
标签: c# jquery asp.net ajax asp.net-mvc