gpt4 book ai didi

ajax - MVC3/Razor 到 Controller Ajax 调用

转载 作者:行者123 更新时间:2023-12-01 06:38:12 25 4
gpt4 key购买 nike

我有一个带有几个下拉列表的 Razor View 。如果其中一个下拉列表的值发生更改,我想清除另一个下拉列表中的值并放入新值。我放入的值取决于 View 使用的模型中的值,这就是为什么我需要将模型从 View 发送回 Controller 。然后, Controller 还需要能够通过将数据发送回 View 来修改下拉列表。请注意,我并不是说我想使用 Ajax 从表单提交返回到 Controller 。我将使用表单提交返回 Controller ,但不使用 Ajax。

请有人给我一些简单的代码或一些指示来展示如何完成此操作。

谢谢

最佳答案

我个人使用ViewBag & ViewData来解决这个问题。

Controller :

public ActionResult Index()
{
ViewBag.dd1value = default_value;
ViewBag.dd1 = DropDownlist1();
ViewBag.dd2 = DropDownlist2(dd1value);
Return View();
}

查看:

在第一个下拉列表中添加 onchange javascript。

<select onchange="javascript:this.form.submit();">
@foreach (var item in ViewBag.dd1) {
if (ViewBag.dd1value = item.dd1value)
{
<option selected value="@item.dd1value">@item.dd1text</option>
}
else
{
<option value="@item.dd1value">@item.dd1text</option>
}
}

然后,在提交按钮上为其命名。

<input type="submit" name="Genereate" value="Generate" />

在 Controller 中,创建2个ActionResult来接收数据。对于下拉列表:

[HttpPost]
public ActionResult Index(int dd1value)
{
ViewBag.dd1value = dd1value;
ViewBag.dd1 = DropDownlist1();
ViewBag.dd2 = DropDownlist2(dd1value);
Return View();
}

对于提交按钮:

[HttpPost]
public ActionResult Index(int dd1value, int dd2value, FormCollection collection)
{
ViewBag.dd1value = dd1value;
ViewBag.dd2value = dd2value;
ViewBag.dd1 = DropDownlist1();
ViewBag.dd2 = DropDownlist2(dd1value);
ViewBag.result = Result(dd1value, dd2value);
Return View();
}

如果您不需要按钮:

[HttpPost]
public ActionResult Index(int dd1value, int dd2value)
{
ViewBag.dd1value = dd1value;
ViewBag.dd2value = dd2value;
ViewBag.dd1 = DropDownlist1();
ViewBag.dd2 = DropDownlist2(dd1value);
ViewBag.result = Result(dd1value, dd2value);
Return View();
}

请注意,如果您使用 ViewBag/ViewData,您从编译器获得的所有帮助都会被禁用,并且与该属性位于“正常”对象上相比,更有可能出现运行时错误/错误,并且拼写错误将被捕获编译器。

关于ajax - MVC3/Razor 到 Controller Ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9190663/

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