小编xel*_*ion的帖子

如何使用linq-to-sql同时增加页面查看次数?

我有一个使用Linq-to-SQL的ASP.NET MVC 3 Web应用程序用于我的数据访问层.我每次调用Details操作时都试图增加一个Views字段,但是如果两个人碰巧同时遇到了这个动作,我会在db.SubmitChanges()上收到"Row not found or changed"错误.

public ActionResult Details(int id)
{
    DataClassesDataContext db = new DataClassesDataContext();

    var idea = db.Ideas.Where(i => i.IdeaPK == id).Single();

    idea.Views++;

    db.SubmitChanges();

    return View(new IdeaViewModel(idea));
}
Run Code Online (Sandbox Code Playgroud)

我可以在我的.dbml(数据模型)中将Views字段的UpdateCheck设置为"Never",这样可以消除错误,但是想法记录可以使用相同的Views count更新两次.即

First instance of Details action gets idea record with Views count of 1.
Second instance of Details action gets idea record with Views count of 1.
First instance increments Views to 2
First instance commits
Second instance increments Views to 2
Second instance commits

Result: Views …
Run Code Online (Sandbox Code Playgroud)

c# architecture asp.net-mvc concurrency linq-to-sql

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

Html 5 WebApp可伸缩性元标记

我目前正在开发一个Html 5 WebApp.除了可伸缩性(缩放)之外,整个应用程序都可以正常运行.我在WebApp的页面上放置了以下Meta标签,

<meta name="viewport" content="user-scalable=yes; width=device-width; height=device-height; initial-scale=1.0;" />
Run Code Online (Sandbox Code Playgroud)

经过大量研究后,我得出结论,这些Meta标签主要用于iPhone版的safari.但是,我遇到的问题是,当iPhone用户在我的网站上时,在将WebApp添加到主屏幕的书签之前,用户无法放大或缩小(使用捏合动作).这似乎创建放大效果的唯一方法是用户是否更改了手机的方向.

我已经使用Apple设备和Android设备测试了这个元标记.当用户可伸缩=否时,Android设备禁用缩放,当用户可伸缩=是时,允许缩放,而Apple设备从不允许放大两个测试用例中的任何一个.

我的问题是:

  1. 这些Meta标签主要是为iPhone Safari浏览器设计的吗?
  2. 我正确使用上面的元标记吗?
  3. 如果我不是,使用元标记的正确方法是什么?

    提前感谢您的建议!

html5 web-applications mobile-safari meta-tags

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