【问题标题】:when select value from dropdwonlist i want to show it in for example div当从下拉列表中选择值时,我想在例如 div 中显示它
【发布时间】:2016-08-05 17:59:57
【问题描述】:

我在表单和 div 中有一个下拉列表。我想要这样,当我从下拉列表中选择一个值时,它会显示在 div 中。

我已经成功了,但问题是以下选择,在第一个之后,正在从 div 中删除以前的结果。

public ActionResult SelectStudWhoWantReport(int StudentId = 0)
{
     IEnumerable<SelectListItem> items = db.Students.Select(c => new SelectListItem
            {
                Value = SqlFunctions.StringConvert((double)c.StudentID).Trim(),
                Text = c.StudentName
            });
     ViewBag.StudentId = items;
     Student WhomakeReport = db.Students.Find(StudentId);
     ViewBag.Name = WhomakeReport.StudentName;
     return View();
}

viewbag 是出现在div 中的值,当我选择该值时,如何将second select 的值附加到first select 以在div 中显示两者。

【问题讨论】:

  • 无法理解你的意思,能否详细说明?

标签: c# asp.net asp.net-mvc-4 html-select


【解决方案1】:

我认为你正在使用一种糟糕的方法来解决你的问题。

您正在通过我假设的表单提交获得控制器类的选择结果,然后将其发送到您的视图。

问题在于,当您调用控制器时,您的页面会重新加载,因此您会丢失以前的信息。您可以通过不同的方式存储以前的结果并将它们构建在视图上。

但是,我认为最好向您解释解决此问题的更正确的方法。

您的视图上应该有一个下拉列表组件,您可以通过控制器加载该组件。我想你已经有了这个。

选择完成后,不是提交表单,而是对服务器中的一个方法进行 AJAX 调用,该方法会执行您当前在控制器中执行的操作(根据所选 ID 获取结果),而不是返回一个ActionResult,只返回你想要的值。

当 AJAX 回调返回时,您将在客户端代码中获得结果,因此您只需将其附加到之前的结果之后。

这种方法不仅从 MVC 模式的角度来看更好,而且更易于实现,并且允许您的用户在下拉列表中选择元素并查看结果,而无需重新加载整个页面。

【讨论】:

  • 谢谢你的回答我会试试这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
  • 2020-01-13
  • 1970-01-01
相关资源
最近更新 更多