小编Cas*_*ton的帖子

.NET MVC - 使用类作为模型?

在我的MVC应用程序中,几个视图模型几乎完全相同.而不是每次复制模型,我想我可以创建一个类而不是.我不确定的是如何在每个模型中包含该类.

例如,假设我的模型看起来像这样:

public class AccountProfileViewModel
{
    public string FirstName { get; set; }
    public string Lastname { get; set; }
    public AccountProfileViewModel() { }
}
Run Code Online (Sandbox Code Playgroud)

但我知道FirstName和LastName将在许多模型中广泛使用.所以,我在其中创建了一个带有AccountProfile的类库:

namespace foobar.classes
{
    public class AccountProfile
    {
        public string FirstName { get; set; }
        public string Lastname { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

回到模型中,我将如何包含该类,以便FirstName和LastName在模型中,但不是专门创建的?

c# asp.net-mvc class asp.net-mvc-viewmodel

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

使用Azure资源管理器时,使用静态IP反向DNS

我非常清楚Azure Cloud Services上可以使用反向DNS.那不是我要问的.我需要知道在使用Azure资源管理器时是否可行.我在网上看了很多,虽然我发现了一些(2年以上)的老问题,但我找不到任何答案.

谢谢!

reverse-dns azure

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

重构循环SQL插入

此插入语句有效.但是,我希望也许有人可以教我一种更有效的方法来进行这种查询.这就是我所拥有的......

我有一个名为Source的表,其中DealerID是一个非唯一的ID(无论如何都在这个表中).对于每个DealerID,有多个名称.例:

15  BillBoard
15  Event
15  Newspaper

16  BillBoard
16  Event
16  Newspaper
Run Code Online (Sandbox Code Playgroud)

我知道我知道.这是存储此数据的非常低效的方法.我们正在处理遗留应用程序,我现在无法彻底改变这种数据结构.所以,我需要做的是为每个DealerID添加两个新记录.一个用于"电话",一个用于"互联网".所以在插入之后,它看起来像这样:

15  BillBoard
15  Event
15  Newspaper
15  Phone
15  Internet

16  BillBoard
16  Event
16  Newspaper
16  Phone
16  Internet
Run Code Online (Sandbox Code Playgroud)

下面的sql语句有效,但我想知道是否有更好的方法...

declare @SourceTemp table (
   [Id] int identity (1, 1) not null,
   [DealerId] int
)

insert into @SourceTemp select distinct DealerId from Source where DealerId is not null

declare @dealerid int
declare @rowcount int = 1
declare @idcount int
select @idcount = max(Id) from  @SourceTemp …
Run Code Online (Sandbox Code Playgroud)

sql database sql-server sql-insert

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

在两个列表中查找属性差异

假设我有两个列表.

我们知道列表中的项目数是相同的,并且该ID是匹配的.

但是,一个或多个属性(ID除外)可能已经改变.在这种情况下,两个数量发生了变化:

List1
---------
{
    ItemId: 1
    Quantity: 10
}
{
    ItemId: 2
    Quantity: 12
}
{
    ItemId: 3
    Quantity: 1
}
Run Code Online (Sandbox Code Playgroud)

然后是几乎相同的匹配项目列表......

List2
---------
{
    ItemId: 1
    Quantity: 10
}
{
    ItemId: 2
    Quantity: 3
}
{
    ItemId: 5
    Quantity: 1
}
Run Code Online (Sandbox Code Playgroud)

除了遍历每个属性并比较Quantity属性之外,有没有办法比较两个列表,找到发生更改的ID,然后仅对更改的项目调用Update方法?

换句话说,我只是想避免遍历每个列表.

c# linq performance

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

使用string.Join()来避免使用尾随逗号

我正在尝试将一个电子邮件地址列表放在一个字符串中,如下所示:

string bcc = string.empty
foreach (contact as Contact in contacts)
{
    bcc = bcc + contact.Email + ","
}
Run Code Online (Sandbox Code Playgroud)

该方法的问题是最终字符串有一个尾随逗号.没什么大不了的,但我想避免它,只是为了整洁.所以,我试过这个:

bcc = bcc.Join(",", contact.Email);
Run Code Online (Sandbox Code Playgroud)

但是这会引发错误:

使用实例引用无法访问成员'string.Join(string,params string [])'; 用类型名称来限定它

所以,我试过这个:

bcc = String.Join(",", contact.Email);
Run Code Online (Sandbox Code Playgroud)

但这只是bcc每次都清除,我最终得到的是最后一个电子邮件地址.所以,我试过这个:

bcc = bcc + string.Join(",", contact.Email);
Run Code Online (Sandbox Code Playgroud)

但这让我得到了一长串未分隔的电子邮件,没有逗号分隔.

我确定当我看到解决方案时,我会打击我的额头.但我并没有抓住它.

c# string

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

在WHERE子句中使用IsNull()

这个查询:

SELECT
    sc.ContactID
    , c.Price
    , p.ParkID
    FROM
        tblc c
        JOIN tblsc ON c.ID= sc.ID
        LEFT JOIN tblp p ON sc.ID= p.ID
    WHERE
        (stuff = stuff)
        AND (stuff = stuff)
Run Code Online (Sandbox Code Playgroud)

返回此:

ContactID    LeadSalePrice     ParkID
-------------------------------------
    1           50             NULL
    2           60              22
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试为其设置另一个AND条款ParkID.但是,我只想ANDParkIDIS NOT NULL的行上执行此操作.因此,如果在ParkIDIS NULL的行上,我们希望始终保留这些行.在ParkID IS NOT NULL的行上,我们只想保留这些行,如果ParkID匹配参数.

如果@ParkID = 22,则返回两行.

如果@ParkID <> 22,那么只返回顶行.

如果@ParkID = NULL,则返回两行.

我试过这个:

SELECT
    sc.ContactID
    , c.Price
    , p.ParkID
FROM
    tblc c
    JOIN …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

尝试从jQuery提交异步调用时,在有效的URL上获取404

我有一个看起来像这样的jQuery方法:

$(document).on("keyup", ".txtTag", function (event) {
    var bomItemID = $(this).data('bomitemid');
    var tag = $(this).val();
    $.post("/BillOfMaterial/SetTag?BomItemID=" + bomItemID + "&Tag=" + tag, function (result) {
            // don't do anything
    });
});
Run Code Online (Sandbox Code Playgroud)

在浏览器的控制台中,我收到以下错误消息:

无法加载资源:服务器响应状态为404(未找到) http:// localhost:61560/BillOfMaterial/SetTag?BomItemID = 3671&Tag = xz

但是,当我点击该链接时,它的工作正常.我甚至可以在服务器上的方法SetTag()中找到一个断点.

这是服务器端方法:

[HttpGet]
public ActionResult SetTag(int BomItemID, string Tag)
{
    ... do stuff
    return Json("SUCCESS", JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)

javascript c# ajax asp.net-mvc jquery

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

以mb为单位检查上传文件的大小

我需要验证用户上传的文件不超过10mb.这会完成工作吗?

var fileSize = imageFile.ContentLength;
if ((fileSize * 131072) > 10)
{
    // image is too large
}
Run Code Online (Sandbox Code Playgroud)

我一直在看这个帖子,而这一个 ...但是它们都没有让我一路走来.我用作为转换率.

.ContentLength得到大小的字节.然后我需要将其转换为mb.

c#

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

将int添加到其现有数组中

这是我尝试过的代码

int[] WeeklyTotal = new int[53];
for (int w = 1; w <= 53; w++)
{
    WeeklyTotal[w] = WeeklyTotal[w] + data.Rows[i]["week" + w];  // Error is here
}
Run Code Online (Sandbox Code Playgroud)

但我收到编译错误:

无法将opperator +应用于int和object类型的opperands

这里的语法是什么?

谢谢!

.net c# arrays

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

更新不存在的表变量

UPDATE 
    @Customer
SET 
    ValidaitonAction = 1
WHERE NOT EXISTS
    (SELECT 1 FROM DMScustomerupload WHERE AccountNumber = @Customer.AccountNumber)
Run Code Online (Sandbox Code Playgroud)

@CustomerTABLE变量在哪里:

DECLARE @Customer TABLE ( ID int,
                        ValidaitonAction int,
                        ... other columns))
Run Code Online (Sandbox Code Playgroud)

在最后一行,我得到

必须声明标量变量@Customer

sql sql-server sql-server-2017

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