小编Rob*_*ert的帖子

为什么我的web项目找不到我的elmah.axd文件

在我的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日志.

我错过了这个拼图吗?

.net elmah exception-handling web-config asp.net-mvc-3

13
推荐指数
1
解决办法
2527
查看次数

有没有办法使用javascript/jquery搜索一组li标签并缩小搜索范围

我一直在网上寻找关于如何做到这一点的想法.我有一个DrillDown菜单,在某些点上深六层(不是我的选择这是客户想要的)我创建了一个包含所有这些项目的xml文档,共有106个不同的选项,用户可以选择仅在侧面菜单中(再次是客户想要的).我想创建一个搜索框,允许我输入其中一个选项的名称,列表缩小到只显示用户输入的单词的选项.

我的问题是否有允许此行为的插件?

如果不是如何搜索一组li元素的文本?

javascript search jquery

12
推荐指数
2
解决办法
1万
查看次数

C#中是否有类似VB.NET的运算符?

我正在重写一个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)

正如你所看到的,我不确定相似的运算符是什么.我通过几个代码转换器运行它,他们不断抛出错误.

c# linq vb.net

11
推荐指数
2
解决办法
4614
查看次数

尝试使用通用实体框架

让我先说一下,我不确定这是否可行.我正在学习泛型,我的应用程序中有几个存储库.我正在尝试创建一个接受泛型类型的接口,并将其转换为所有存储库可以继承的东西.现在回答我的问题.

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)

有什么建议?

c# generics entity-framework

7
推荐指数
1
解决办法
869
查看次数

使用枚举来选择要实例化的类

我有一个我想尝试与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次.无论出于何种原因,我的大脑只是遗漏了一些明显 处理这个问题的最佳方法是什么.

c# abstraction

7
推荐指数
3
解决办法
4444
查看次数

是否有命令检查实体框架中是否存在数据库?

我可能措辞不好,但在我使用的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)

此数据处理器是必须始终位于数据库中的实际数据.是否有命令检查数据库是否存在,以便我可以运行该代码块.谢谢!

database entity-framework

6
推荐指数
1
解决办法
1万
查看次数

如何直接导出到报表查看器中的Word文档

我创建了一个包含一些数据的报告.我不希望用户必须单击表单导出按钮并将数据导出到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)

有什么建议?

c# reportviewer

5
推荐指数
2
解决办法
1万
查看次数

使用EF更新多对多的正确方法是什么?

我很好奇一次更新实体列表的正确方法是什么.

    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只对数据库进行一次调用.枚举列表将导致多重更新语句.

entity-framework

5
推荐指数
1
解决办法
226
查看次数

在EF 6中更新子实体的正确方法是什么?

必须有一种更好的方法来处理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)

c# entity-framework

5
推荐指数
1
解决办法
4518
查看次数

为什么我要为一个项目打多个电话?

我正在尝试调用服务器以根据在下拉列表中选择的特定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告诉我,问题是由父方法中每个项目的角度调用方法引起的.

有关如何执行此操作的任何建议,每个项目只调用一次方法吗?

angularjs

5
推荐指数
1
解决办法
158
查看次数