在我的web.config文件中,我拥有elmah所需的所有引用,以便让elmah运行.除了这部分代码:
<location path="elmah.axd">
<system.web>
<authorization>
<allow roles="admin" />
<deny users="*" />
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
ReSharper或Visual Studio都给我错误:
位置元素未使用:在elmah.axd路径中找不到项目:找不到Web项目\ elmah.axd的路径
我从NuGet安装了elmah包,我保存了dll,当我转到我的站点的根目录并键入root/elmah.axd时,我可以访问elmah日志; 但是,我需要限制这些日志对管理员的访问.
我有两个用户:管理员和用户我只希望那些具有管理员角色的用户访问elmah日志.
我错过了这个拼图吗?
我一直在网上寻找关于如何做到这一点的想法.我有一个DrillDown菜单,在某些点上深六层(不是我的选择这是客户想要的)我创建了一个包含所有这些项目的xml文档,共有106个不同的选项,用户可以选择仅在侧面菜单中(再次是客户想要的).我想创建一个搜索框,允许我输入其中一个选项的名称,列表缩小到只显示用户输入的单词的选项.
我的问题是否有允许此行为的插件?
如果不是如何搜索一组li元素的文本?
我正在重写一个vb.net应用程序,我不能声称对vb很好.我需要在C#中编写这个等效的:
Dim bigList = (From gme In dtx.gmc_message_elements
Where gme.element_key_name Like "*email" _
Or gme.element_key_name Like "*web"
Or gme.element_key_name Like "*both" _
Select gme.element_key_name Distinct).ToList()
Run Code Online (Sandbox Code Playgroud)
我到目前为止:
var bigList = (from gme in dtx.gmc_message_elements
where gme.element_key_name Like "*email"
|| gme.element_key_name Like "*web"
|| gme.element_key_name Like "*both"
select gme.element_key_name).FirstOrDefault().ToList();
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我不确定相似的运算符是什么.我通过几个代码转换器运行它,他们不断抛出错误.
让我先说一下,我不确定这是否可行.我正在学习泛型,我的应用程序中有几个存储库.我正在尝试创建一个接受泛型类型的接口,并将其转换为所有存储库可以继承的东西.现在回答我的问题.
public interface IRepository<T>
{
IEnumerable<T> FindAll();
IEnumerable<T> FindById(int id);
IEnumerable<T> FindBy<A>(A type);
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用通用来确定要查找的内容?
public IEnumerable<SomeClass> FindBy<A>(A type)
{
return _context.Set<SomeClass>().Where(x => x. == type); // I was hoping to do x.type and it would use the same variable to search.
}
Run Code Online (Sandbox Code Playgroud)
为了澄清一点,我考虑成为一个字符串,int或我想要搜索的任何类型.我希望的是我可以说x.something其中的东西等于传入的变量.
我可以使用.将任何存储库设置为我的dbcontext
public IDbSet<TEntity> Set<TEntity>() where TEntity : class
{
return base.Set<TEntity>();
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我有一个我想尝试与dto联系的枚举:
public enum DtoSelection
{
dto1,
dto2,
dto3,
}
Run Code Online (Sandbox Code Playgroud)
此枚举中有108个和值.
我为这些dto中的每一个都有一个dto对象:
public class dto1 : AbstractDto
{
public int Id { get; set; }
//some stuff specific to this dto
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个方法(最终是一个服务),它将返回一个与所讨论的dto相关联的类型的新dto对象:
private AbstractDto(int id)
{
if (id == DtoSelection.Dto1.ToInt()) //extension method I wrote for enums
return new Dto1();
if (id == DtoSelection.Dto2.ToInt())
return new Dto2();
}
Run Code Online (Sandbox Code Playgroud)
显然我不想这样做108次.无论出于何种原因,我的大脑只是遗漏了一些明显 处理这个问题的最佳方法是什么.
我可能措辞不好,但在我使用的global.asx文件中
if (System.Diagnostics.Debugger.IsAttached)
{
var test = new TestDbSeeder(App_Start.NinjectWebCommon.UcxDbContext);
test.seed();
}
Run Code Online (Sandbox Code Playgroud)
这将检查调试器是否已连接并运行我的测试播种器,以便我的验收测试始终通过.
我需要检查数据库是否存在,如果没有先运行此代码:
var test2 = new DataSeeder();
test2.Seed(App_Start.NinjectWebCommon.UcxDbContext);
Run Code Online (Sandbox Code Playgroud)
此数据处理器是必须始终位于数据库中的实际数据.是否有命令检查数据库是否存在,以便我可以运行该代码块.谢谢!
我创建了一个包含一些数据的报告.我不希望用户必须单击表单导出按钮并将数据导出到word文档.该文件可以很好地解决问题,当我打开文档时,它只是一堆垃圾而不是应该保存的报告.
我的保存按钮如下所示:
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.InitialDirectory = @“C:\”;
saveFileDialog.RestoreDirectory = true;
savefileDialog.Title = “Browse Text Files”;
saveFileDialog.DefaultExt = “docx”;
saveFileDialog.Filter = “Word Doc (*.docx)|*.docx|PDF (*.pdf)| *.pdf”;
saveFileDialog.checkFileExists = false;
saveFileDialog.CheckPathExists = true;
Warning[] warnings;
string[] streams;
string mimeType;
string encoding;
string extension;
byte[] bytes = reportViewer1.LocalReport.Render(“Word”, null, out mimeType, out encoding, out extension, out streams, out warnings);
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
var filename = saveFileDialog.FileName;
System.IO.FileStream file = new FileStream(filename, FileMode.Create);
file.Write(bytes, 0, bytes.length);
file.close();
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我很好奇一次更新实体列表的正确方法是什么.
public ActionWas Update(IEnumerable<surcharge_template> templates)
{
try
{
var templatesToBeUpdated = _context.surcharge_template.Where(x => templates.Select(template => template.st_key).Contains(x.st_key));
//Right here I need to map all of the differences from the original templates
//to the new templates
_context.Entry(templatesToBeUpdated).State = EntityState.Modified;
}
catch (Exception ex)
{
return _exceptionConverter.Convert(ex);
}
_context.SaveChanges();
return ActionWas.Successsful;
}
Run Code Online (Sandbox Code Playgroud)
我发表评论,我不知道如何处理这个问题.我从数据库中获取原始模板,然后我需要映射它们,然后提交并保存.
那么映射它们的正确方法是什么?
更新:
我想用EF只对数据库进行一次调用.枚举列表将导致多重更新语句.
必须有一种更好的方法来处理EF 6中的子节省/更新.当然,这种重复只是我的失败.
实体
public partial class MyParentType
{
public MyParentType()
{
this.children = new HashSet<child>();
}
public int parentID { get; set; }
public virtual ICollection<child> children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
添加/更新
public class MyRepository : IMyRepository
{
private readonly IErrorLogger _logger;
private readonly CorporateEntities _context;
public MyRepository(IErrorLogger logger)
{
_logger = logger;
_context = new CorporateEntities();
}
public void Update(IEnumerable<MyParentType> parents)
{
try
{
Add(parents.Where(x => x.parentID == 0));
var updatedData = parents.Where(x => x.parentID != 0);
foreach …Run Code Online (Sandbox Code Playgroud) 我正在尝试调用服务器以根据在下拉列表中选择的特定ID获取项目列表.
HTML:
<tr ng-repeat="parent in model.waivers">
<td><select ng-model="parent.ID" ng-options="object.Key as object.Value for object in model.myObject"></select></td>
<td><select ng-model="parent.ServiceNameID" ng-options="expectedResult.Key as expectedResult.Value for expectedResult in model.output(object.ID)"></select></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
控制器:
$scope.model.output = function(id) {
console.log(id);
}
Run Code Online (Sandbox Code Playgroud)
模型:
var Model = function() {
this.parent = [];
};
Run Code Online (Sandbox Code Playgroud)
我只是在这里登录以查看结果.我真正打算做的是根据该ID获取一个列表.
如果有3个表行,那么输出的是:
1
1
1
2
2
3
3
1
2
3
1
Run Code Online (Sandbox Code Playgroud)
代替:
1
2
3
Run Code Online (Sandbox Code Playgroud)
这是我所期望的,因为每行只有一个id.
有关导致此行为的原因有何建议?
更新
所以@Fieldset告诉我,问题是由父方法中每个项目的角度调用方法引起的.
有关如何执行此操作的任何建议,每个项目只调用一次方法吗?
c# ×5
.net ×1
abstraction ×1
angularjs ×1
database ×1
elmah ×1
generics ×1
javascript ×1
jquery ×1
linq ×1
reportviewer ×1
search ×1
vb.net ×1
web-config ×1