【问题标题】:Accurate way of passing data controller to view ASP.NET MVC传递数据控制器查看ASP.NET MVC的准确方法
【发布时间】:2021-11-11 23:53:25
【问题描述】:

在我的应用程序中,将一些数据加载到视图(组合框)中,我一直在使用TempData。我想知道是否可以为此目的使用TempData

我当前的代码在这里;首先我将数据调用到控制器中的列表中:

List<Request_Types> RequestTyleList = db.Request_Types.Where(r => r.Status == true).ToList();
List<SelectListItem> ReqTypeDropDown = RequestTyleList.Select(r => new SelectListItem { Text = r.Request_Type, Value = r.Id.ToString() }).ToList();

然后我将此数据分配给TempData

TempData["RequestTyleList"] = ReqTypeDropDown;

在视图中,我调用了该临时数据并分配给组合框

@{
    ViewBag.Title = "Create";
    Layout = "~/Views/Shared/_Layout.cshtml";

    List<SelectListItem> ReqType = (List<SelectListItem>)TempData.Peek("RequestTyleList");
}

-----------------

<div class="form-group row">
  @Html.LabelFor(model => model.ReqType, htmlAttributes: new { @class = "control-label col-md-3" })
    <div class="col-sm-8">
         @Html.DropDownListFor(model => model.ReqType, ReqTypes, "Select Request Type", new { @class = "js-dropdown" })
         @Html.ValidationMessageFor(model => model.ReqType, "", new { @class = "text-danger" })
     </div>
</div>

如果我想在编辑中访问这些相同的数据,我会再次创建一个列表并将数据放入列表并传输到TempData,然后再次从视图中调用相同的数据。还是我列表里有5到8条数据,我想知道TempData什么时候有100条数据,我的系统会变慢吗?是否存在任何潜在的性能问题?

在网上冲浪时,我在Sessions 中得到了同样的结果,但我不知道它是否适合这个?否则有什么好的方法可以在不降低系统性能的情况下做到这一点,比如在一个控制器中调用和存储数据,我可以从任何视图访问这些数据。

【问题讨论】:

  • 如果您在后续请求中不需要相同的数据,您可以使用ViewData 而不是TempData 以获得更好的性能。
  • 您也可以为此创建一个Model 类并使用强类型帮助器。
  • @jishansiddique 你能给我举个例子吗?

标签: asp.net asp.net-mvc asp.net-mvc-4


【解决方案1】:
@smc developments, please use below Model and html markup to show dropdown list for users
public class User
{
public int SelectedUserId{get;set;}
public IEnumerable<SelectListItem> Users { get; set; }
}
 @Html.DropDownListFor(x => Model.SelectedUserId, new SelectList(Model.Users, "Value", "Text"), htmlAttributes: new { @class = "form-control", id = "User"})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多