小编Ole*_* Sh的帖子

ASP.NET MVC 5是否已发布?

根据维基百科 - asp.NET MVC 5于2013年10月17日发布.

但是在ASP网站上我看不到下载软件包的位置.

当我尝试在VS 2013中创建一个新项目时 - 我只能选择asp.NET MVC 4.

我该如何安装MVC 5?

asp.net-mvc asp.net-mvc-5

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

实体框架继承

SQL层:

我有一张桌子

在此输入图像描述

实体框架层:

我有以下规则:所有要约,其中State为null,是优惠要约,State是真实的是已接受的要约,State is false是拒绝要约.此外,部分字段仅用于Outstanding,part - 仅用于Accepted等...我使用Database first方法,因此,我从DB更新EF模型并将Offer实体重命名为OfferBase并创建了3个子类:

在此输入图像描述

它适用于添加/选择实体/记录.现在我想要从优秀到接受报价"移动"报价,所以,我需要设置Status = true(从Status为null)以获得适当的记录.但是如何通过实体框架来实现呢?如果我尝试选择未完成的报价作为接受报价,我会得到一个空参考(显然为什么)

// record with ID=1 exists, but State is null, so, EF can not find this record and offer will be null after the following string
var offer = (from i in _db.OfferBases.OfType<EFModels.OfferAccepted>() where i.ID == 1 select i).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

如果我尝试选择作为OfferBase实体,我会收到以下错误:

无法将"System.Data.Entity.DynamicProxies.OfferOutstanding_9DD3E4A5D716F158C6875FA0EDF5D0E52150A406416D4D641148F9AFE2B5A16A"类型的对象转换为"VTS.EFModels.OfferAccepted"类型.

    var offerB = (from i in _db.OfferBases where i.ID == 1 select i).FirstOrDefault();
    var offer = (EFModels.OfferAccepted)offerB;
Run Code Online (Sandbox Code Playgroud)

关于建筑的附加说明:

我有3种类型的Offer实体.有:AcceptOffer,DeclineOffer和OutstandingOffer.

AcceptOffer:

  • 用户身份
  • 使用ContactID
  • 笔记
  • FirstContactDate
  • LastContactDate
  • [...和5-10个独特的领域......]

DeclineOffer:

  • 用户身份 …

c# inheritance entity-framework

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

WiX和启动程序 - 是否可以传递参数?

我有一个WiX软件包,安装后应用程序启动:

<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch MyProgram" />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" />
<Property Id="WixShellExecTarget" Value="[#MainExe]" />
<CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />
Run Code Online (Sandbox Code Playgroud)

我想将WiX包的语言传递给我的程序.可能吗?

parameters wix

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

触发器 - 是否有必要 BEGIN / COMMIT TRAN

我想像这样创建 INSTEAD OF 触发器:

CREATE TRIGGER [dbo].[DeleteCompany]
ON [dbo].[Company]
 INSTEAD OF DELETE
  AS 
  DECLARE @CompanyID int
  SELECT @CompanyID = deleted.CompanyID FROM deleted

  BEGIN TRAN
  DELETE FROM Project WHERE CompanyID = @CompanyID
  DELETE FROM CompanyPerson WHERE CompanyID = @CompanyID
  UPDATE PersonCompany SET CompanyID = null WHERE CompanyID = @CompanyID

  DELETE [Company]
     FROM DELETED D
     INNER JOIN [Company] T ON T.CompanyID = D.CompanyID
  COMMIT TRAN
Run Code Online (Sandbox Code Playgroud)

因此,我可以确定,这些操作是一个原子操作。但这有意义还是 TRIGGER 总是在事务内执行?

另外,如果公司在另一个触发器中被删除,会发生什么情况,如下所示:

CREATE TRIGGER [dbo].[DeleteSecurityLevel]
ON [dbo].[SecurityLevel]
 INSTEAD OF DELETE
  AS 
  DECLARE @SecurityLevelID int
  SELECT …
Run Code Online (Sandbox Code Playgroud)

sql-server triggers sql-server-2014 azure-sql-database

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

MasterCard的正则表达式

我找到了以下信用卡类型万事达卡的正则表达式

public static readonly string CreditMasterCard = @"^(5[1 - 5][0 - 9]{14})$";
Run Code Online (Sandbox Code Playgroud)

然后我写了下面的代码:

Regex regexMasterCard = new Regex(CommonLibrary.RegexCreditCardStrings.CreditMasterCard);

if (regexMasterCard.IsMatch(number)) return CommonLibrary.CreditCardType.mastercard;
Run Code Online (Sandbox Code Playgroud)

但是当我设置number ='5308171154251187'时就错了.正则表达式中有什么不正确?

.net c# regex credit-card

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

Visual Studio 2017启动新的浏览器实例

我安装了Visual Studio 2017,它启动了Web应用程序的新浏览器实例.我想在当前打开的浏览器中启动它,没有任何新实例(当我停止调试时关闭).这个设置在哪里?

visual-studio visual-studio-2017

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

EF Core:如何在 OnModelCreating 中按条件验证数据是否存在

我使用 EF Core 并想添加预定义的数据。可以通过以下代码完成:

            modelBuilder.Entity<UserPage>().HasData(new UserPage()
            {
                Name = "Homepage",
                Editable = true,
                Path = "path"
            });
Run Code Online (Sandbox Code Playgroud)

这部分代码验证具有确切数据的 UserPage 对象是否存在,如果不存在,则创建它但我只想在记录Name = "Homepage"不存在时添加新记录,否则不存在。即使名称为“主页”的记录已经存在,上面的代码也会添加新记录,但Editable = false例如。我想验证它,我尝试:

        if (UserPages.Where(p => p.Name.Equals("Homepage", StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault() == null)
        {
            modelBuilder.Entity<UserPage>().HasData(new UserPage()
            {
                Name = "Homepage",
                Editable = true,
                Path = "path"
            });
        }
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误:

在创建模型时尝试使用该模型。DbContext 实例不能以任何使用正在创建的模型的方式在 OnModelCreating 中使用。

c# entity-framework seed entity-framework-core ef-core-2.0

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

ASP.NET MVC - 将htmlAttributes作为参数传递

我想将htmlAttributes作为参数传递给我的HtmlHelper,类似于在Html.ActionLink中创建的("linktext","Home",null,new {width ="100px"})如何传递这个新的{width ="100px"}我的方法

    public static string SelectCategoryAdminWithAllItem(this HtmlHelper htmlHelper, string name, **???**)
    { }
Run Code Online (Sandbox Code Playgroud)

以及如何解析它?

谢谢

asp.net-mvc html-helper asp.net-mvc-2

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

TextBoxFor没有时间显示日期

我想以格式MM/dd/yy在文本字段中显示日期.我将模型类描述为:

public class VacancyFormViewModel
{
    public int? ID { get; set; }
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yy}")]
    public DateTime SurgeryDate { get; set; }
Run Code Online (Sandbox Code Playgroud)

当然,我可以用EditorFor而不是TextBoxFor:

@Html.EditorFor(p => p.SurgeryDate, new { @class = "form-control" })
Run Code Online (Sandbox Code Playgroud)

问题是css样式,客户想要应用bootstrap样式,这些样式被破坏:

在此输入图像描述

如果我设置TextBoxFor而不是EditorFor我得到日期与时间:

@Html.TextBoxFor(p => p.SurgeryDate, new { @class = "form-control" })
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有什么方法可以解决我的问题?或者为时间或第三种方式应用样式EditorFor或显示样式TextBoxFor

css asp.net-mvc razor twitter-bootstrap html.textboxfor

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

Web API - 将双参数传递给GET方法

我有以下方法:

[Route("GetEditorialRequestsByCoordinates/{lat:min(-90):max(90)}/{lng:min(-180):max(180)}")]
[AutomapperExceptionApiFilterAttribute]
public HttpResponseMessage GetEditorialRequestsByCoordinates(double lat, double lng)
{

}
Run Code Online (Sandbox Code Playgroud)

我打电话时工作正常......

GET /v1/api/request/GetEditorialRequestsByCoordinates/48/2
Run Code Online (Sandbox Code Playgroud)

但是我希望像这样传递double值:

GET /v1/api/request/GetEditorialRequestsByCoordinates/48.999/2.777
Run Code Online (Sandbox Code Playgroud)

我收到了一个错误(找不到404).好像,它找不到合适的路线方法.我试图通过以下方式设置路线:

[Route("GetEditorialRequestsByCoordinates/{lat:double:min(-90):max(90)}/{lng:double:min(-180):max(180)}")]
Run Code Online (Sandbox Code Playgroud)

......但它也不起作用.

我该如何解决?

asp.net-web-api asp.net-web-api-routing asp.net-web-api2

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