【问题标题】:How should I amend this code to make it work in Razor C#?我应该如何修改此代码以使其在 Razor C# 中工作?
【发布时间】:2012-04-24 03:27:57
【问题描述】:

我想在 Razor C# 中添加 2 个变量。

因此我尝试了这个:

var newpenpoints = result.PenaltyPoints + int.Parse(penalty);

但我认为当我尝试将图形放入数据库时​​它不起作用:

var sql5 = "UPDATE Permit SET PenaltyPoints=@0, Disqualification = @1, LastAccidentDate = @2 WHERE CDSID = @3";
        var para1 = new{newpenpoints, disqualification, dateocc, empcdsid};
        db.Execute(sql5,para1);
        Response.Redirect("~/AccidentConviction");

出现错误:

CS0746: Invalid anonymous type member declarator. Anonymous type members must be declared with a member assignment, simple name or member access.

有谁知道我如何修改我的代码以使其进行一些数学运算?

谢谢

【问题讨论】:

  • 不...我不知道如何编写控制器...我对 C# 和 webmatrix 很陌生
  • 那是个什么样的项目? ASP.NET MVC / ASP.NET Webform ?

标签: c# razor webmatrix


【解决方案1】:

这不是有效的代码:

var para1 = new { newpenpoints, disqualification, dateocc, empcdsid };

这是试图创建一个具有四个字段的匿名类型]1,但您没有给它们命名。要创建这种类型,您必须使用您已经拥有的另一个对象的值来初始化字段,或者显式命名它们:

var para1 = new 
{
  NewPenPoints = newpenpoints, 
  Disqualification = disqualification, 
  Dateocc = dateocc, 
  Empcdsid = empcdsid
};  

但是,重新阅读您的示例代码,它怀疑您真正想要的是一个对象数组。在这种情况下,您没有说db 是什么,但我猜Execute 需要stringobject[] 作为参数。在这种情况下,你想要的是:

var para1 = new[] { newpenpoints, disqualification, dateocc, empcdsid };

注意[]:这是创建一个新的对象数组,其中包含值列表,例如para1[0] = newpenpoints 等。我认为这才是你真正想要做的。

【讨论】:

  • obj 在我的示例中只是某个其他对象的占位符,例如参数或 LINQ 查询中的变量等。关键是,您的属性必须属于 something 才能使用它们来初始化匿名类型。你不能简单地列出一堆局部变量。
【解决方案2】:

生成匿名类型的代码有错误:

new{newpenpoints, disqualification, dateocc, empcdsid};

您确定所有变量(newpenpoints、disqualification、dateocc、empcdsid)都在生成编译器错误的上下文中声明吗?

【讨论】:

    猜你喜欢
    • 2016-11-18
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    相关资源
    最近更新 更多