gpt4 book ai didi

c# - 如何在 MVC4 中获取第二个下拉列表的值?

转载 作者:行者123 更新时间:2023-11-30 17:39:49 25 4
gpt4 key购买 nike

我有这两个级联下拉列表,它们填充得很好。但是当我点击提交时,我总是得到 NULL 作为第二个值。我的猜测是我必须用 javascript 做点什么,但我在那个部门的技能严重缺乏。请帮忙!

删除了代码,添加了整个 View

我什至没有第二个下拉菜单的 HtmlHelper,它在 View 中看起来像这样:

删除了代码,添加了整个 View

工作正常,我的意思是,它会根据第一个下拉列表中的选择正常填充。也许这是需要修改的部分?问题是我一无所知。

编辑:

这是从表单中读取信息并将其提交到数据库的代码。

[HttpPost]
public ActionResult Returer(ReturerDB retur)
{
if (ModelState.IsValid)
{
db2.ReturerDB.AddObject(retur);
db2.SaveChanges();

return RedirectToAction("Returer");
}

return View("Returer");
}

EDIT2

整体 View 代码:

@model Fakturabolag.Models.ReturerDB

@{
ViewBag.Title = "Returer";
}

<script type="text/javascript" src="../../Scripts/jquery-1.7.1.js"></script>
<script type="text/javascript">

$(document).ready(function () {
$("#bolag").prop("disabled", true);
$("#Kund").change(function () {
if ($("#Kund").val() != "- Välj bolag -") {
var options = {};
options.url = "/companies/getbolag";
options.type = "POST";
options.data = JSON.stringify({ country: $("#Kund").val() });
options.dataType = "json";
options.contentType = "application/json";
options.success = function (bolag) {
$("#bolag").empty();
for (var i = 0; i < bolag.length; i++) {
$("#bolag").append("<option>" + bolag[i] + "</option>");
}
$("#bolag").prop("disabled", false);
};
options.error = function () { alert("Fel vid bolagshämtning!"); };
$.ajax(options);
}
else {
$("#bolag").empty();
$("#bolag").prop("disabled", true);
}
});
});

</script>



<h2>Returer</h2>

@using (Html.BeginForm())
{

@Html.ValidationSummary(true)

<fieldset>
<legend>Returer</legend>
<br /><br />


<div class="editor-label">
<b>Kund</b>
</div>

<div class="editor-field">
@Html.DropDownListFor(model => model.Kund, ViewData["kundLista"] as SelectList)
@Html.ValidationMessageFor(model => model.Kund)
</div>

<div class="editor-label">
<b>Bolag</b>
</div>

<select id="bolag"></select>

<div class="editor-label">
<b>Pris</b>
</div>
<div class="editor-field">
@Html.TextBox("pris", null, new { style = "width: 150px" })
@Html.ValidationMessageFor(model => model.Pris)
</div>

<div class="editor-label">
<b>Datum</b>
</div>
<div class="editor-field">
@Html.TextBox("datum", ViewData["datum"] as String, new { style = "width: 150px" })
@Html.ValidationMessageFor(model => model.Datum)
</div>

<p>
<input type="submit" value="Lägg till" />
</p>
</fieldset>
}

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

最佳答案

目前您没有在您的操作中检索附加值“bolag”。我猜你的模型没有名为“bolag”的属性。您可以添加它,也可以像这样向您的操作添加其他参数:

    [HttpPost]
public ActionResult Returer(ReturerDB retur, string bolag)
{
if (ModelState.IsValid)
{
db2.ReturerDB.AddObject(retur);
db2.SaveChanges();

return RedirectToAction("Returer");
}

return View("Returer");
}

之后,从下拉列表中选择的值应该自动出现在 bolag 参数中。

编辑。

您还需要将名称属性添加到您的选择中:

  <select id="bolag" name="bolag"/>

关于c# - 如何在 MVC4 中获取第二个下拉列表的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21327215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com