小编Dis*_*ile的帖子

ASP.net Postback - 滚动到特定位置

我有一个ASP.net WebForms页面,屏幕顶部有很多内容.它有一个链接按钮,将回发到页面并显示页面的另一部分.当页面刷新时,我想设置焦点并向下滚动到页面的这一部分.

我试过了

txtField.Focus()
Run Code Online (Sandbox Code Playgroud)

在我的代码后面,它将设置焦点并尝试在那里滚动,但然后滚动回到顶部.焦点仍然在我的文本框上,但屏幕的位置在最顶层.链接位于屏幕顶部,导致回发.我想滚动到屏幕的最底部.它会短暂地执行此操作,然后向右滚动到顶部.

我试过设置

Page.MaintainScrollPositionOnPostback = false;
Run Code Online (Sandbox Code Playgroud)

但这似乎也没有帮助.

有什么方法可以强迫它去特定的位置吗?当我使用按钮或链接按钮回发时,是否可以在URL中添加锚标记?

c# asp.net postback webforms

26
推荐指数
3
解决办法
8万
查看次数

DbContextTransaction回滚

实体框架6引入了一种使用BeginTransaction方法支持DbContext中的事务的新方法:

var db = new MyDbContext();
using(var tx = db.Database.BeginTransaction())
{
    // update entities
    try
    {
        db.SaveChanges();
        tx.Commit();
    }
    catch(Exception)
    {
        tx.Rollback();
    }
}
Run Code Online (Sandbox Code Playgroud)

是否需要在方法中调用Rollback()?如果没有在异常中调用会发生什么?我知道在使用TransactionScope时,它将在处理时自动回滚事务并且不调用Complete.DbContextTransaction的行为是否相似?

entity-framework

24
推荐指数
1
解决办法
3288
查看次数

INFORMATION_SCHEMA vs sysobjects

在SQL Server中:

INFORMATION_SCHEMA和sysobjects有什么区别?一个人提供的信息多于另一个,还是通常用于不同的事情?

sysobjects与sys.objects相同吗?如果没有,这些有什么区别?

sql-server sql-server-2005 sql-server-2008

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

ASP.net MVC - 我应该使用ViewModel中的AutoMapper到Entity Framework实体吗?

我目前正在使用AutoMapper将我的Entity Framework实体映射到我的View Model:

public class ProductsController : Controller
{
    private IProductRepository productRepository;

    public ProductsController(IProductRepository productRepository)
    {
         this.productRepository = productRepository;
    }

    public ActionResult Details(int id)
    {
        var product = productRepository.GetProduct(id);

        if( product == null )
            return View("NotFound");

        ProductDetailsViewModel model = Mapper.Map<Product, ProductDetailsViewModel>(product);

        return View(model);
    }
}
Run Code Online (Sandbox Code Playgroud)

这很好用.我的问题是当我需要从我的View Model转到我的实体以更新数据库时.我应该使用AutoMapper吗?这是一个糟糕/危险的做法吗?

似乎AutoMapper很适合将复杂类型展平为简单(平面)类型,但到目前为止,我正在努力尝试从平面/简单到更复杂的类型,如我的实体具有各种导航属性.

如果使用AutoMapper执行此操作是个坏主意,那么我的代码对于Create操作会是什么样子?

public ActionResult Create(CreateProductViewModel model)
{
    if( ModelState.IsValid )
    {
        // what do i do here to create my Product entity?
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑动作怎么样?

public ActionResult Edit(int id, EditProductViewModel model)
{
    Product …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc entity-framework automapper

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

LINQ to Objects连接两个集合以在第一个集合中设置值

我有以下实体框架查询:

var results = from r in db.Results
              select r;
Run Code Online (Sandbox Code Playgroud)

我正在使用AutoMapper映射到另一种类型:

var mapped = Mapper.Map<IEnumerable<Database.Result>, IEnumerable<Objects.Result>>(results);
Run Code Online (Sandbox Code Playgroud)

在我的Objects.Result类型中,我有一个名为reason的属性,它不是来自数据库.它来自另一个来源,我需要基本填充回我的映射类型:

var reasons = new List<Reason>
{
    new Reason { Id = 1, Reason = "asdf..." }
};
Run Code Online (Sandbox Code Playgroud)

我需要使用我的映射集合加入原因,并使用my reason集合中的值在我的映射集合中设置Reason属性.这可能吗?

 // need something like this:
 mapped = from m in mapped
          join r in reasons on m.Id equals r.Id
          update m.Reason = r.Reason
          select m;
Run Code Online (Sandbox Code Playgroud)

显然上面的代码没有编译,但是我能编写的代码可以做我想要的吗?

.net c# linq-to-objects

21
推荐指数
2
解决办法
3万
查看次数

MVC ViewModels和Entity Framework查询

我是MVC和实体框架的新手,我有一个关于正确/首选方式的问题.

我一直在关注Nerd Dinner MVC应用程序,因为我正在编写这个应用程序.我有一个页面,其中包含来自几个不同地方的数据.它显示来自几个不同表的详细信息,并且还具有查找表中的下拉列表.

我创建了一个包含所有这些信息的ViewModel类:

class DetailsViewModel {
    public List<Foo> DropdownListData { get; set; }

    // comes from table 1
    public string Property1 { get; set; } 
    public string Property2 { get; set; }

    public Bar SomeBarObject { get; set; } // comes from table 2
}
Run Code Online (Sandbox Code Playgroud)

在Nerd Dinner代码中,他们的例子有点过于简单化了.DinnerFormViewModel采用单个实体:Dinner.根据晚餐,它根据晚餐地点为各国创建一个SelectList.

由于简单,它们的数据访问代码也非常简单.他有一个简单的DinnerRepository,其方法名为GetDinner().在他的行动方法中,他可以做一些简单的事情:

Dinner dinner = new Dinner();

// return the view model
return View(new DinnerFormViewModel(dinner));
Run Code Online (Sandbox Code Playgroud)

要么

Dinner dinner = repository.GetDinner(id);

return View(new DinnerFormViewModel(dinner));
Run Code Online (Sandbox Code Playgroud)

我的查询比这复杂得多,从多个表中提取...创建一个匿名类型:

var query = from a in ctx.Table1
            where …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc entity-framework repository-pattern viewmodel

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

实体框架性能问题

我遇到了Entity Framework的一个有趣的性能问题.我正在使用Code First.

这是我的实体的结构:

一本书可以有很多评论.评论与单本书相关联.评论可以有一个或多个评论.评论与一篇评论相关联.

public class Book
{
    public int BookId { get; set; }
    // ...
    public ICollection<Review> Reviews { get; set; }
}

public class Review 
{
    public int ReviewId { get; set; }
    public int BookId { get; set; }
    public Book Book { get; set; }
    public ICollection<Comment> Comments { get; set; }
}

public class Comment
{
     public int CommentId { get; set; }
     public int ReviewId { get; set; }
     public Review Review …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework performance-testing entity-framework-4.1

18
推荐指数
1
解决办法
5814
查看次数

ASP.net MVC Validation Hook

我在ASP.net MVC 3中有以下视图:

@model Models.CreateProjectViewModel

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>

@using( Html.BeginForm() ) {
    @Html.TextBoxFor(m => m.ProjectName)
    @Html.ValidationMessageFor(m => m.ProjectName)

    <p>
        <input type="submit" value="Save" />
    </p>
}
Run Code Online (Sandbox Code Playgroud)

我正在使用不引人注目的javascript与jQuery和Fluent验证框架.

当我单击"保存"按钮并且验证失败时,是否有一些事件我可以挂钩调用一些自定义的JavaScript?

function validationFailed() {
    // do something here only if validation failed
}
Run Code Online (Sandbox Code Playgroud)

我如何与验证绑定,以便在失败时(并且只有失败)我可以调用validationFailed()函数.

asp.net-mvc asp.net-mvc-validation fluentvalidation unobtrusive-validation asp.net-mvc-3

18
推荐指数
2
解决办法
9887
查看次数

将Url.Content与半相对URL一起使用

我将图像的位置存储在我的数据库中的MVC应用程序中...但我只存储部分位置.例如:

/headers/image1.jpg
/headers/image2.jpg
Run Code Online (Sandbox Code Playgroud)

图像实际存储在以下文件夹中:

~/content/images/headers/image1.jpg
~/content/images/headers/image1.jpg
Run Code Online (Sandbox Code Playgroud)

在我看来,我想做这样的事情:

<img src="@Url.Content("~/content/images") + Model.ImageUrl" />
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

asp.net-mvc razor

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

OutputCache Location =客户端似乎不起作用

我试图OutputCache在我的MVC应用程序中使用该属性,它在我使用时似乎不起作用OutputCacheLocation.Client:

public class HomeController : Controller
{
    [OutputCache(Duration=15, Location=OutputCacheLocation.Client)]
    public ActionResult Client()
    {
        ViewBag.Message = "The current time is " + DateTime.Now.ToString("hh:mm:ss");

        return View();
    } 

    [OutputCache(Duration=15, Location=OutputCacheLocation.Any)]
    public ActionResult Any()
    {
        ViewBag.Message = "The current time is " + DateTime.Now.ToString("hh:mm:ss");

        return View();
    }        
}
Run Code Online (Sandbox Code Playgroud)

第一个不缓存.我每秒都会点击页面,它会改变时间.第二个工作.它只会每15秒更改一次.有什么我想念的吗?我正在使用IE8和Visual Studio中的内置开发服务器进行调试.

c# asp.net-mvc outputcache

16
推荐指数
1
解决办法
8564
查看次数