我想要实现的目标是:
Items assigned to me
Item 1 assigned to me
Item 2 assigned to me
Item 3 assigned to me
All open items
Item 1 open to everyone
Item 2 open to everyone
Item 3 open to everyone
Item 4 open to everyone
Run Code Online (Sandbox Code Playgroud)
虽然从目前为止我对MVC的经验是,我必须将数据返回到视图模型,以便能够以下列方式在视图中使用它:
<asp:Content ID="ticketsContent" ContentPlaceHolderID="MainContent" runat="server">
<div id="hdMain">
<div id="hdMainTop"><img src="images/hdMainTop.gif" alt="" /></div>
<div id="hdMainContent">
<div id="numberOfCalls">Calls assigned to you (<%=Html.ViewData("MyOpenCallsCount")%>)</div>
<div id="assignedToMe">
<div id="callHeaders">
<table id="callHeadersTbl" cellpadding="0" cellspacing="0">
<tr>
<td width="54"> </td>
<td width="270">Subject</td>
<td width="148">Logged</td>
<td width="120">Updated</td> …Run Code Online (Sandbox Code Playgroud) 我有一些viewdata是通过我的存储库到数据库生成来获取一些调度信息.当信息存储在Viewdata中时,我注意到了viewdata的枚举.如何访问枚举项并根据viewdata生成表/列表?大多数信息只需要吐出到表中,但是一个项目将为其生成一个链接.
谢谢!
我在viewdata中有一个名称列表,但我无法在视图页面中显示它
<body>
<%= ViewData["names"].ToString() %>
Run Code Online (Sandbox Code Playgroud)
谢谢
如果我将其他数据(模型除外)传递到我的视图中,比如说来自特定文件夹的文件列表,那么最好的方法是什么?
我正在考虑制作方法并将列表返回到ViewData:
public List<string> GetFiles(int id, string cat)
{
var files = new List<string>();
var folder = "~/App_Data/uploads/" + cat + "/" + id.ToString();
foreach (var file in Directory.GetFiles(folder))
{
files.Add(file);
}
return files;
}
Run Code Online (Sandbox Code Playgroud)
控制器:
ViewData["files"] = db.GetFiles(id, "random");
Run Code Online (Sandbox Code Playgroud)
风景:
@foreach (var item in ViewData["files"]){ //markup }
Run Code Online (Sandbox Code Playgroud)
首先,我听说不应该使用viewdata和viewbag.其次,这段代码不起作用.Viewdata对象的某些内容不可枚举.我应该为这些文件创建一个模型类.如果是这样,怎么样?一个视图中有2个型号?我有点困惑如何做到这一点.
我正在尝试从控制器传递数据以查看,并显示这些数据.但经过多次尝试,我做不到.
控制器代码:
public ActionResult ValidSearch(ProductSearchParam gp)
{
if (gp.IsCandidate)
{
ViewBag.abc="bob";
List<ProductCandidate> prodClist = new List<ProductCandidate>();
prodClist = Pcs.SearchParam(gp,0,100);
ViewBag.total = prodClist.Count;
return View("ValidSearchCandidate", prodClist);
}
else
{
List<Product> prodlist = new List<Product>();
prodlist = Ps.SearchParam(gp,0,100);
ViewBag.total = prodlist.Count;
return View("ValidSearch", prodlist);
}
//return View();
}
Run Code Online (Sandbox Code Playgroud)
查看代码:
<body>
<div>
<p>Bonjour @ViewBag.abc</p>
Run Code Online (Sandbox Code Playgroud)
我甚至尝试TempData或ViewBag不成功地.
我不明白为什么值没有正确传递给View有人可以帮我解决这个问题吗?
我有一个需要回答的逻辑问题!
这是一个场景..
- 在控制器中
ViewBag.Name = "aaaa";
Run Code Online (Sandbox Code Playgroud)
- 在视图中
@ViewBag.Name
Run Code Online (Sandbox Code Playgroud)
"在我的控制器中,我已经为ViewBag设置了值,并在VIew中从ViewBag中检索了值.现在在View中,我有一个按钮,它将一些数据发布到HttpPost方法.在HttpPost方法中,我更改了ViewBag的值.那么在执行该方法之后,viewbag中的值是否会因当前视图而改变?"
- 在HttpPost方法中
ViewBag.Name="bbbb";
Run Code Online (Sandbox Code Playgroud) 您好,我有一个包含多个用户控件的视图,我将 ViewData 传递给所有这些控件,我想知道如何通过指定字符串键来确定元素计数。我知道您不能使用与整数的比较,因为 ViewData 是一个对象,但我以这种方式设置它来解释我的问题。我也尝试过 null,但 ViewData 对象永远不会为 null,即使对于 ViewData 中没有填充数据的结果也是如此。IE
在我看来
<%if(ViewData["Test"].Values > 0)
{
%>
<%=Html.RenderPartial("~/Views/UC/Test.ascx", ViewData["Test"])%>
<%
}
%>
Run Code Online (Sandbox Code Playgroud) 我的viewpage没有代码隐藏,那么如何告诉它使用强类型的viewdata呢?
如何将一个Environment.NewLine(或一个< br />)内部ViewData["msg"]
渲染为一个真实<br />的视图内部?
我正在使用C#...
public class CheckMetadataAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
// get model
// get metadata for each model property
// set viewdata if metadata X exists
}
}
Run Code Online (Sandbox Code Playgroud)
老问题是:如何在自定义ModelMetadataProvider中访问ViewData?那是不行的.
你觉得什么时候在视图模型上使用ViewData会更好?
我在几个主要视图中有相同的部分视图.我想控制部分视图的渲染方式,但我也更喜欢局部视图只接受视图模型,它是一个记录集合,只是一个纯IEnumerable<>对象.我宁愿避免从主视图发送完整视图模型对象,因为它还包含许多不同的属性,对象,控制分页,排序,过滤等.
因此问题是我是否应该为局部视图创建另一个视图模型,或者是否可以使用ViewData?我读过soemwhere,使用ViewData是一种非常糟糕的做法.
使用View Data,我可以简单地传递需要的详细信息:
@{
ViewDataDictionary vd = new ViewDataDictionary
{
new KeyValuePair<string,object>("WithDelete", Model.WithDelete),
new KeyValuePair<string,object>("WithRadarCode", Model.WithCode)
};
}
// ...
@if (Model != null) {
Html.RenderPartial("_ListOfRecordingsToRender", Model.recordingViewModel, vd);
}
Run Code Online (Sandbox Code Playgroud)
目前,它将被整理出来.
我担心的是,目前*.recordingViewModel我的项目有很多不同的变化,因为创建/编辑,列表,显示记录的细节等不同的模型.我觉得如果我查看我的项目可能会开始太乱每个动作的模型.
你怎么看.请问您能否就这一特定问题提出建议.谢谢
我在StackOverflow和其他地方看过几篇文章讨论了将来自多个实体的数据整合到一个强类型视图中的各种方法,这些方法是使用ViewData对象或构建一个利用这两个实体的新自定义类.
对我来说,似乎如果你代表某种新的混合实体,你会想要创建一个新类并对其进行处理.但是,我可以看到使用视图数据的原因,如果您传入的数据不是您正在使用的实体的一部分,但仍在您的模型中,例如下拉列表或其他UI元素.
我看到人们出于各种原因提倡一个或另一个,我想知道何时使用一个而不是另一个?