我有一个动作过滤器检查是否ID设置了会话变量.出于开发目的,我在检查之前手动设置了此变量.
public class MyActionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext context)
{
context.HttpContext.Session.Add("ID", 123123);
int ID = (int)context.HttpContext.Session.Contents["ID"];
var rd = context.HttpContext.Request.RequestContext.RouteData;
TED _db = new TED();
//if not in DB
if (_db.Users.Find(ID) == null && rd.GetRequiredString("action") != "NoAccess")
{
RouteValueDictionary redirectTargetDictionary = new RouteValueDictionary();
redirectTargetDictionary.Add("action", "NoAccess");
redirectTargetDictionary.Add("controller", "Home");
redirectTargetDictionary.Add("area", "");
context.Result = new RedirectToRouteResult(redirectTargetDictionary);
}
base.OnActionExecuted(context);
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,此代码在任何页面之前运行,Session["ID"]始终设置.如果我一直在测试,该网站工作正常,但如果我离开它一段时间似乎打破,然后尝试继续测试.这是我得到的错误:
int UserID = (int)Session.Contents["ID"];
System.NullReferenceException: Object reference not set to an instance of an object. …Run Code Online (Sandbox Code Playgroud) 我一直不愿意发布这个,因为我觉得这是一个常见的问题,但我似乎无法找到适用于这种情况的答案......(也许我只是一个非常糟糕的Google员工).
我有两个相同的表(列方式,而不是数据),table1和table2.我希望删除table1中的记录,其中两个表中都存在复合键(col1,col2).这就是我所拥有的,这似乎对我来说是正确的,但却是一个错误.
DELETE FROM Table1
WHERE (**Col1**, Col2) IN
(SELECT Col1, Col2
FROM Table1 a
JOIN Table2 b
ON a.Col1 = b.Col1
AND a.Col2 = b.Col2)
Run Code Online (Sandbox Code Playgroud)
错误:
消息4145,级别15,状态1,行212在期望条件的上下文中指定的非布尔类型的表达式,在','附近.
我把两个*代码部分放在了"Red error squiggles"的旁边.
我正在使用jQueryUI的自动完成功能来搜索用户.文档说明我能够以下列格式使用数组作为数据源:[ { label: "Choice1", value: "value1" }, ... ]
我有一个基类,它提供了Users我的视图模型继承的唯一列表.视图模型具有以下功能:
public List<TestJson> GetUsers()
{
return AvailableUsers
.Select(u => new TestJson
{
Label = u.LastName + ", " + u.FirstName + "(" + u.UserId + ")",
Value = u.UserId
}).ToList();
}
public class TestJson
{
public string Label { set; get; }
public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我看来,我使用上面这样:
var userNameList = @Html.Raw(Json.Encode(Model.GetUsers()));
$("#UserName").autocomplete({
source:userNameList
});
Run Code Online (Sandbox Code Playgroud)
原来userNameList是这样出现的:
[ { "Label": "Choice1", "Value": …Run Code Online (Sandbox Code Playgroud) 我想使用[DataSourceRequest] DataSourceRequest request和实现服务器端分页/排序/等ToDataSourceResult
我已经使用LINQ和EF完成了数百次,但是,这个当前项目要求我们使用存储过程,称为 context.Database.SqlQuery
这工作正常,除了我需要将参数传递到存储过程的情况,这导致错误:
SqlParameter已包含在另一个SqlParameterCollection中.
我假设这样做的原因是剑道ToDataSourceResult还试图将SQL参数附加到dataC#不喜欢的对象上.
我在网上看到的一些解决方案是打电话.ToList(),这确实有效,然而,它有点失败,因为它仍然会查询所有结果.
var data = context.Database.SqlQuery<TicketVm>("usp_FleetRentedEquipments @analyst",
new SqlParameter("@analyst", analyst));
return data.ToDataSourceResult(request);
Run Code Online (Sandbox Code Playgroud) 我正在创建SelectList各种联系人.我想证明是一个组合的文本FirstName,MiddleInit(如果可能的话),和LastName.
IEnumerable<SelectListItem> items = contacts
.Select(r => new SelectListItem()
{
Value = r.ContactID.ToString(),
Text = r.FirstName + " "
+ string.IsNullOrEmpty(r.MiddleInit) ? r.MiddleInit + ". " : ""
+ r.LastName
});
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Error 4 Cannot implicitly convert type 'string' to 'bool' C:\Users\cu551d\Documents\Visual Studio 2010\Projects\WVM\WVM\Controllers\SOWController.cs 181 15 WVM
Run Code Online (Sandbox Code Playgroud)
我猜这与我的语法有关.我能在c#中做这样的事吗?
另外,我应该在Trim()声明中加入声明MiddleInit吗?我认为这个错误非常奇怪IsNullOrEmpty,事实上回复一个bool.我也试过了(string.IsNullOrEmpty(r.MiddleInit) == true ) ..
这可能非常简单......我试图创建一个SelectList包含当前版本的年份,直到2008年.这将始终如此.例如,在2020年,我的SelectList将包含2020年至2008年的值.
我设置了这个循环,但我不确定这个最好的地方是什么
for (int i = currentYear; i != 2009; --i)
{
}
Run Code Online (Sandbox Code Playgroud)
是否可以创建单个SelectListItem并将其"添加"到SelectList每次迭代?
我不认为上面的陈述是可能的,所以我的下一个想法是创建一个年份列表,然后使用LINQ来创建它.
var selectList = ListOfYears.Select(new SelectListItem
{
Value =
Text =
});
Run Code Online (Sandbox Code Playgroud)
但后来我不完全确定如何从列表中获取值.谢谢
我有一张桌子记录了访问期间车辆发生的情况.对于每次访问,都有多行来表示已完成的操作.该表看起来像这样
VisitID | ActionID | StartTime | EndTime
0 | 0 | 1/1/2013 | 1/2/2013
1 | 0 | 1/2/2013 | 1/4/2013
1 | 1 | 1/4/2013 | 1/7/2013
2 | 0 | 1/4/2013 | 1/5/2013
2 | 1 | 1/5/2013 | 1/6/2013
2 | 2 | 1/6/2013 | 1/7/2013
Run Code Online (Sandbox Code Playgroud)
我希望构建一个能够获取访问时间的LINQ查询.TotalTime首先找到第一个和最后一个(最低和最高)ActionID,然后计算last.EndTime - first.StartTime.预期成绩:
VisitID | TotalTime
0 | 1
1 | 5
2 | 3
Run Code Online (Sandbox Code Playgroud)
我可以通过这样做来产生我的预期结果
var first = db.Visits.Where(v => v.ActionID == 0) …Run Code Online (Sandbox Code Playgroud) 我已经使用MSChart生成图表一段时间了,但我从未在一个图表对象中创建多个图表.对这项任务的思考揭示了我的知识差距.
我如何看待创建图表
对象结构最终看起来像这样
Chart
/ \
ChartArea Series
Run Code Online (Sandbox Code Playgroud)
就我过去所关注的而言,ChartArea就是我设置标签的区域.要添加另一个,我将要添加另一个ChartArea和一个或多个系列.
___________________ Chart ___________________
/ / \ \
ChartArea0 ChartArea1 Series0 Series1
Run Code Online (Sandbox Code Playgroud)
如何将Series0与ChartArea0相关联?将一个系列添加到ChartArea是有意义的,但这是不可能的.为什么将系列与图表相关联而不是ChartArea是有益的?
这个当前项目更像是一个更大项目的概念证明.我有两个"表"(表示为下面的列表),CatList并且DogList具有相同的列结构.我希望能够使用Concat或者Union对两者执行查询LINQ.有人告诉我,通过实施,interfaces我将能够实现这些结果.
这是我到目前为止:
static void Main(string[] args)
{
System.Console.Write("Hello World\n");
Dog Dog1 = new Dog { name = "A", age = 1 };
Dog Dog2 = new Dog { name = "B", age = 2 };
Cat Cat1 = new Cat { name = "C", age = 3 };
Cat Cat2 = new Cat { name = "D", age = 4 };
List<Dog> DogList = new List<Dog>();
List<Cat> CatList …Run Code Online (Sandbox Code Playgroud) 我有一个嵌套类,如:
public class Jar
{
public IEnumerable<NailClippings> Nails { set; get; }
public IEnumerable<People> Donors { set; get; }
}
Run Code Online (Sandbox Code Playgroud)
我的控制器将单个传递Jar给我的视图,字符串键入为
@model Test.ViewModels.Jar
Run Code Online (Sandbox Code Playgroud)
我可以通过内容循环Nails和Donors容易像这样的东西
@foreach(var item in Model.Nails)
Run Code Online (Sandbox Code Playgroud)
我的问题是使用HTML帮助程序为我生成显示名称
@Html.DisplayNameFor(model => model.Nails.Length)
Run Code Online (Sandbox Code Playgroud)
我通过更改内部嵌套类的类型来提出解决方案List,.ToList()在查询结束时附加并将行更改为
@Html.DisplayNameFor(model => model.Nails[0].Length)
Run Code Online (Sandbox Code Playgroud)
被迫使用List并有一个索引[0]来显示一个名字对我来说是愚蠢的.是否有另一种引用内部嵌套类属性的方法?
编辑:查看
<table>
<tr>
<th>@Html.DisplayNameFor(model => model.Nails[0].Length)</th>
.
.
</tr>
@foreach(var item in Model.Nails){
<tr>
<td>@Html.DisplayFor(modelItem => item.Length</td>
.
.
</tr>
}
</table>
Run Code Online (Sandbox Code Playgroud) c# ×8
asp.net-mvc ×5
linq ×2
sql-server ×2
asp.net ×1
jquery ×1
jquery-ui ×1
kendo-grid ×1
kendo-ui ×1
mschart ×1
razor ×1
sql ×1
t-sql ×1