我正处于我正在进行的小型网站开发项目的alpha阶段,并决定使用NLog作为我的日志记录解决方案.
我的解决方案到目前为止没有记录.我现在正在添加日志记录.
一个例子:
private static Logger logger = LogManager.GetCurrentClassLogger();
public int SaveProject(ProjectDto project)
{
logger.Trace("SaveProject ({0}) : {1}", project.Id, _userId);
return _pb.SaveProject(project);
}
Run Code Online (Sandbox Code Playgroud)
'GetCurrentClassLogger'方法很棒,因为它现在知道我在哪个类.
但有没有办法报告方法名称,而不是我如何做?在上面的示例中,您可以看到我需要在消息中添加"SaveProject".有没有办法自动获得这个?或者我是否需要将此添加到每个方法记录调用?
我想,我正在尝试使用EditorFor和partialview来渲染表格.
我有一个模型,其List <>属性定义如下:
public List<TransactionSplitLine> TransactionSplitLines { get; set; }
Run Code Online (Sandbox Code Playgroud)
这个想法是用户选择一些下拉菜单并在编辑框中输入一个值,然后单击一个按钮.模型返回到控制器,控制器将输入的值添加到List <>
[HttpPost]
public ActionResult AccountTransaction(AccountTransactionView model)
{
var reply = CreateModel(model);
if (model.CategoryIds != null)
{
foreach (var c in model.CategoryIds)
{
reply.TransactionSplitLines.Add(new TransactionSplitLine { Amount = "100", Category = "Test Category", SubCategory = "Test More", CategoryId = int.Parse(c) });
}
}
reply.TransactionSplitLines.Add(new TransactionSplitLine { Amount = "100", Category = "Test Category", SubCategory = "Test More", CategoryId = 1 });
return View("AccountTransaction", reply);
}
Run Code Online (Sandbox Code Playgroud)
忽略CreateModel.它只是设置了一些数据.另外,我正在硬编码数据.这最终将来自某些形式值.
然后将模型返回到同一屏幕,允许用户收集更多数据.读取List <>中的任何项目并呈现表格.我还必须将当前监听项目值存储在隐藏字段中,以便可以将它们与输入的新数据一起提交回来,以便每次用户添加数据时列表都可以增长.
视图定义如下:
<table …Run Code Online (Sandbox Code Playgroud) 我正在尝试掌握 Razor,但遇到了基本的障碍。我根据用户经过身份验证的状态生成一个小菜单。但是,我做错了。
<div>
<a href="/">Home</a>
<a href="/">List</a>
@if (Request.IsAuthenticated)
{
<a href="/">Upload</a>
<a href="/logout" onclick="return confirm('Are you sure you want to delete this image?');">Logout</a>
}
</div>
Run Code Online (Sandbox Code Playgroud)
它不喜欢我的 {} 部分中的 HTML。我认为它需要一个 HTML 标签...类似于 的东西<div>,但因为我正在使用 ,所以它不高兴。我该怎么做呢?
此外,我正在尝试处理图像标签。但这是惨败的。
@using GalleryPresentation.Models
@model IndexModel
@{
ViewBag.Title = "Craig and Melanie's Digital Moments";
}
<br/>
<div style="text-align: center">
<img src="@Html.Raw(m => m.RandomImageUrl) />
</div>
Run Code Online (Sandbox Code Playgroud)
我的模型很简单:
{
public class IndexModel
{
public string RandomImageUrl { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个MyPersonObjects的List <>.该列表是我可以分配内容的人员列表.在这个列表中,我包括我自己(因为任务可以分配给我 - 通常是).
所以,我想确保自己处于榜单的首位.我知道我的personId,这是我的person对象的属性 - 所以有没有办法订购列表以确保我是第一个,然后其余的,按姓氏字母顺序(这是我的对象的另一个属性)
我有一个List<CreditCard>,信用卡的属性是CreditCardNumber,这是一个字符串.不幸的是,它可以是1234 1234 1234 1234,或者1234123412341234,它们都是相同的数字.
我需要经历并删除这些重复的项目.有人可以协助吗?
我有一个自定义对象,其中包含有关项目资源的详细信息.属性为PersonName,Position和Id如果未填充资源,PersonName将设置为"Unassgined".
要将对象添加到Combobox,我会:
var avail = s.GetUnassignedPrintRoles(SprintId);
foreach (var o in avail)
{
cmbRoles.Items.Add(o);
}
Run Code Online (Sandbox Code Playgroud)
显示资源列表时这很好.我的对象有一个重写的ToString()方法:
public override string ToString()
{
if(AssignedPerson != null)
return ResourceType + " - " + AssignedPerson.Firstname + " " + AssignedPerson.Surname;
return "Unassigned";
}
Run Code Online (Sandbox Code Playgroud)
但是,我有一个屏幕,显示未分配的角色列表.所以,我得到一个列表,其中Person为NULL.
但是,我想在ComboxBox中显示"角色".
但是,我的对象的ToString显示'未分配'.如何让它显示Role属性?有没有办法在Comboxbox项目中保存对象,但在显示中显示不同的属性,而不是我在ToString覆盖中设置的内容?
在我的UI层中,我将一些时区信息存储在会话状态中.
我现在需要访问我的服务/业务/数据层中的时区.
从我的UI层,我传递登录用户的UserID,我的数据库具有为该用户存储的时区信息.我宁愿不用用户ID传递时区.
时区仅用于时间很重要的几个呼叫.(项目已经启动,今天是休假的人......等等).
我想可能有一个静态类,它在所有层(服务/业务/数据)上引用,它有一个时区信息字段.我希望它是静态的,以便我可以参考它:
var CurrentDate = CommonClass.GetLocatDateTime(_userId);
Run Code Online (Sandbox Code Playgroud)
这可能会回归DateTime.
然后,如果CurrentDate == null,使用UserId,从该数据库获取该用户的TimeZoneId - 因此,数据库调用只会发生一次,并且只有在之前没有发生时才会发生.
但是,静态类何时"出生"和"被杀"?
它是每个用户的会话?或者是在Asp.Net应用程序运行时?当我说用户会话时,我的意思是,每次用户点击某些内容时,都会创建一个新会话,因此,我的静态类会被创建吗?或者静态类对所有其他会话"可见"吗?我希望它仅限于当前用户.
我正在尝试制作一个横幅图像,跨越屏幕的 100% 宽度我想要实现的示例可以在此处找到:
http://www.aha.io/roadmapping/where-aha-fits
全屏查看。横幅的宽度为 100%,可能为屏幕高度的 15%。
当您缩小窗口尺寸时,横幅仍然使用 100% 的屏幕宽度,但我认为似乎裁剪了左侧尺寸,并降低了高度,将屏幕高度保持在 15% 左右。
我在这里创建了一个我想要做的演示:
http://www.bootply.com/Hrxwy8BjTT
我最终得到的是,在“移动”版本中,一个非常非常薄的横幅。
我怎样才能让它稍微裁剪一下,并保持屏幕高度的 10% 左右(在我的例子中)(并且不创建滚动条)?
我在.Net 4.6.2中有一个运行良好的项目,该项目大量使用了将byte []转换为Bitmap的方法。
public static Bitmap ByteArrayToImage(byte[] source)
{
TypeConverter tc = TypeDescriptor.GetConverter(typeof(Bitmap));
return (Bitmap)tc.ConvertFrom(source);
}
Run Code Online (Sandbox Code Playgroud)
但是,自那时以来,我已经将项目升级到.Net Core 2.1,并且这不再起作用。我读过,有些人有问题,但是努力寻找解决方法。
TypeConverter无法从System.Byte []转换
2.1中是否有办法实现这种转换?看起来https://github.com/SixLabors/ImageSharp可能有用,但是当我在Nuget中搜索它时,没有任何结果。
以下 linq 表达式会导致相同的性能吗?
在我想象的场景中,我的表 MyData。有 25 列和 50,000 行。我正在尝试根据 WHERE 获取所有 MyData 记录。
var myData = _myDb.Entities<MyData>()
.ToList()
.Select(p => new { p.Name, p.Id })
.Where(y => y.DepartmentId = 1)
.OrderBy(x => x.Name);
Run Code Online (Sandbox Code Playgroud)
对比
var myData = _myDb.Entities<MyData>()
.Where(y => y.DepartmentId = 1)
.Select(p => new { p.Name, p.Id })
.OrderBy(x => x.Name)
.ToList();
Run Code Online (Sandbox Code Playgroud)
SELECT * FROM MyData由于语句中 ToList() 的顺序,我认为第一个查询基本上会执行 a 。昂贵。所有数据带回客户端,然后应用排序和过滤。
SELECT Name, Id FROM MyData WHERE DepartmentId = 1 ORDER BY Name在这种情况下,第二个选项会更好,执行一个- 如此小的数据集,按 SQL 排序。
或者 …