我有2个命令,需要它们都正确执行或者没有执行.所以我认为我需要一个交易,但我不知道如何正确使用它.
以下脚本有什么问题?
BEGIN TRANSACTION [Tran1]
INSERT INTO [Test].[dbo].[T1]
([Title], [AVG])
VALUES ('Tidd130', 130), ('Tidd230', 230)
UPDATE [Test].[dbo].[T1]
SET [Title] = N'az2' ,[AVG] = 1
WHERE [dbo].[T1].[Title] = N'az'
COMMIT TRANSACTION [Tran1]
GO
Run Code Online (Sandbox Code Playgroud)
该INSERT命令已执行但UPDATE命令有问题.如果其中任何一个命令执行错误,我如何实现它来回滚这两个命令?
什么是从列表中删除重复值的最快方法.假设List<long> longs = new List<long> { 1, 2, 3, 4, 3, 2, 5 };我很有兴趣使用lambda删除重复并返回:{1, 2, 3, 4, 5}.你的建议是什么?
我正在使用带有Razor视图的ASP.NET MVC 3.如果要创建视图,可以为视图选择布局(母版页),或者选择"默认"(_Layout).
我很有兴趣在创建视图后更改此布局而不重新创建它,是否有任何地方存储有关视图的布局信息?我该怎么改变它?
我使用自定义AuthorizationFilter,如下所示:
public class ActionAuthorizeAttribute : AuthorizeAttribute {
protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext) {
if(!httpContext.User.Identity.IsAuthenticated)
return false;
if(IsUserExcluded())
return false;
else
return IsRoleAuthorize(httpContext);
}
}
Run Code Online (Sandbox Code Playgroud)
我在每个操作的顶部使用此过滤器,并且要检查是否已授权,需要操作名称,控制器名称和区域名称.那么有没有办法在AuthorizeCore()使用方法中获得这些名称System.Web.HttpContextBase?如果答案是否,那么我怎么能得到这个名字并将其传递给属性,显然我不想手工添加每个名字,实际上就像ViewContext.RouteData.Values["Controller"]在控制器中一样:
[ActionAuthorize(actionName=Action, controller=ControllerName, area=AreaName)]
public ActionResult Index() {
return View();
}
Run Code Online (Sandbox Code Playgroud)
有人对此有任何想法吗?
asp.net-mvc authorization authorize-attribute action-filter asp.net-mvc-3
我和MVC一起工作,我是新手.我想通过[RegularExpression]Validation 检查输入值仅在波斯语(字符)中.所以我认为使用正则表达式需要检查unicodes的范围,但我不知道如何找到范围的波斯字符Unicode.我对这个正则表达式是对的吗?你的建议是什么?如何在波斯语中找到Unicode的范围
如你所知,我们可以在剃刀视图中设置属性为actionLink或textBox,但我们如何设置属性@Html.EditorFor,我知道EditorFor是一个可以根据模型类型设置的动态元素,但是所有形状都可以获得属性.那么有没有办法将属性设置为@Html.EditorFor这样的东西:new {@class = "myclass"}?
我在这里问一个类似的问题并Darin Dimitrov回答我们不能像$.ajax({ url: '@Url.Action("Index")', . . .在单独的js文件中那样使用Url帮助器,那么你有什么建议在视图页面中使用Url helper并将其传递给javascript,我不想使用硬代码网址,我需要用Url帮助器找到它.
我在这里问类似的问题 ,假设这种类型:
public class Product {
public string Name { get; set; }
public string Title { get; set; }
public string Category { get; set; }
public bool IsAllowed { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这个使用MemberExpression:
public class HelperClass<T> {
public static void Property<TProp>(Expression<Func<T, TProp>> expression) {
var body = expression.Body as MemberExpression;
if(body == null) throw new ArgumentException("'expression' should be a member expression");
string propName = body.Member.Name;
Type proptype = null;
}
}
Run Code Online (Sandbox Code Playgroud)
我这样使用它:
HelperClass<Product>.Property(p …Run Code Online (Sandbox Code Playgroud) 这是我的清单:
List<int> numbers=new List<int> { 12, 5, -8, 4, 7, 28, 3, 22 };
Run Code Online (Sandbox Code Playgroud)
如何通过lambda获得4个最大数字:我需要这些: {28, 22, 12, 7}
我有一个方法如下:
public void MyMethod(object obj){
// implement
}
Run Code Online (Sandbox Code Playgroud)
我称之为:
MyMethod(new { myparam= "waoww"});
Run Code Online (Sandbox Code Playgroud)
那么如何实现MyMethod()获取myparam值呢?
编辑
我用这个:
dynamic d= obj;
string param = d.myparam;
Run Code Online (Sandbox Code Playgroud)
但错误上升:
'object' does not contain a definition for 'myparam'
Run Code Online (Sandbox Code Playgroud)
我也使用断点,我看到d有myparam字符串属性.
有没有办法检查动态类型,如果包含这样的任何属性:
if(d.contain(myparam))?
Run Code Online (Sandbox Code Playgroud)
编辑二
这是我的主要代码:
public static MvcHtmlString SecureActionLink(this HtmlHelper htmlHelper,
string linkText, string actionName, string controllerName,
object routeValues, object htmlAttributes) {
string areaName =
(string)htmlHelper.ViewContext.RouteData.DataTokens["area"];
dynamic areaObject = routeValues;
if(areaObject != null && !string.IsNullOrEmpty(areaObject.area))
areaName = areaObject.area;
// more
}
Run Code Online (Sandbox Code Playgroud)
并称之为:
<p>@Html.SecureActionLink("Secure Link between Areas", …Run Code Online (Sandbox Code Playgroud) c# ×7
asp.net-mvc ×5
c#-4.0 ×3
.net ×2
lambda ×2
razor ×2
asp.net ×1
database ×1
expression ×1
generic-list ×1
javascript ×1
linq ×1
list ×1
properties ×1
regex ×1
sorting ×1
sql ×1
sql-server ×1
t-sql ×1
transactions ×1
urlhelper ×1