小编Sae*_*eid的帖子

在ASP.NET MVC3 Razor的渲染时间视图中获取区域名称

ViewContext.RouteData.Values["Controller"]用来获取控制器名称或ViewContext.RouteData.Values["action"]在视图中获取操作名称(实际上在_Layout中),但是对于区域来说这ViewContext.RouteData.Values["Area"]不起作用.您有什么建议在programmaticaly视图中获取区域名称?

asp.net-mvc razor asp.net-mvc-3-areas asp.net-mvc-3

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

更改表添加具有默认值和FK的列,该值在FK参考数据中不存在

这是我的表:

成员:Id,....

产品:Id,....

我的Member表有一些值,如果它们的Id = 0,我不想添加Id = 0的任何成员,所以我尝试运行这个脚本:

ALTER TABLE [Product]
ADD [Member_Id] BIGINT  NOT NULL  DEFAULT(0),
CONSTRAINT [FK_Product_Member] FOREIGN KEY ([Member_Id]) REFERENCES [Member];
Run Code Online (Sandbox Code Playgroud)

所以有一个错误:

The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_Product_Member".
Run Code Online (Sandbox Code Playgroud)

所以我试试这个:

SET IDENTITY_INSERT [Member] ON
INSERT INTO [Member] ([Id]) VALUES  (0);
SET IDENTITY_INSERT [Member] OFF

ALTER TABLE [Product]
ADD [Member_Id] BIGINT  NOT NULL  DEFAULT(0),
CONSTRAINT [FK_Product_Member] FOREIGN KEY ([Member_Id]) REFERENCES [Member];

DELETE FROM [Member] WHERE [Member].[Id] = 0;
Run Code Online (Sandbox Code Playgroud)

那么新的错误是:

The …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server alter-table sql-server-2008

7
推荐指数
2
解决办法
3万
查看次数

具有不同属性名称的 Typescript 映射类型

我使用 Angular 6 + TypeScript 2.7.2 并且我有一个需要ISelect[]类型的组件:

export interface ISelect {
    id: number;
    title: string;
}
Run Code Online (Sandbox Code Playgroud)

所以每次我调用组件时,我都需要传递一个ISelect[]. 例如,我有一个IProject[],我需要将其映射到ISelect[]在另一个示例中,我IClient[]再次需要将其映射到ISelect[],这里是IProject

export interface IProject {
    id: number;
    name: string;
    code: string;
    clientId: number;
    status: number;
    level: number;
    masterKey: number;
    parentId?: number;
}
Run Code Online (Sandbox Code Playgroud)

我需要像这个伪代码一样映射它。

 myprojects: IProject[];
 myselect: ISelect[] = myprojects.Foreach.Map<ISelect>(id: id, title: name);
Run Code Online (Sandbox Code Playgroud)

或者:

export interface IClient {
    code: number,
    fullname: string,
    streetNumber: string,
    streetName: string,
    postalCode: string,
    city: string, …
Run Code Online (Sandbox Code Playgroud)

typescript angular

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

计算SQL中所选Ids的列总和

这些是我的表:

  • 成员:Id, Points
  • 购物车注册:Id, Member_Id, CartId, RegisterDate, Point
  • SelectetMembers:Id, Member_Id

会员可以在其中注册购物车CartRegister,并且Member.Points必须计算和插入会员所赚取的所有积分.所以我需要计算每个点的所有点SelectedMembers并更新Member表,但我不知道如何实现它.

以下脚本在我脑海中:

UPDATE [Member]
   SET [Points]=
    (
       SELECT SUM([CR].[Point]) AS [AllPoints]
       FROM  [CartRegister] AS [CR] 
       WHERE [CR].[Member_Id] = --???

    )
    WHERE [Members].[Member].[Id] IN  ( SELECT Member_Id From SelectedMembers  )
Run Code Online (Sandbox Code Playgroud)

所以我很困惑Select Sum(Point)如果我使用的是where子句

        WHERE [CR].[Member_Id] IN ( Select Member_Id From SelectedMembers  )
Run Code Online (Sandbox Code Playgroud)

然后所有成员的总和相同于所有成员点的总和,也许我需要一些像foreach你的建议是什么?

sql t-sql sql-server sql-scripts sql-server-2008

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

在MVC3中获取已检查复选框的ID

这是我的观点:

@foreach(var action in Model.Category.Actions) {
<div class="action" style="margin-right: 30px;">
    <input type="checkbox" class="chk-act" id="@action.Id" name="actionChk" />
    <text>@action.Text</text>
</div>
  }
Run Code Online (Sandbox Code Playgroud)

而html Dom就像以下几样:

<input type="checkbox" class="chk-act" id="17" name="actionChk">
<input type="checkbox" class="chk-act" id="18" name="actionChk">
<input type="checkbox" class="chk-act" id="19" name="actionChk">
Run Code Online (Sandbox Code Playgroud)

所以我需要检查ID.当我尝试通过表单集合获取值时,它返回了一个on按已检查复选框长度的字符串数组:

[HttpPost]
public ActionResult Index(FormCollection collection) {
    var actions = collection.GetValues("actionChk");
return View();
}
Run Code Online (Sandbox Code Playgroud)

你的建议是什么?

asp.net-mvc formcollection razor asp.net-mvc-3

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

获取对象的实例名称,而不是C#4.0中的对象类型名称

假设这种类型:

public class Car { } 
Run Code Online (Sandbox Code Playgroud)

我创建了一个实例:

Car myCar = new Car();

Target target = new Target();
target.Model = myCar;
Run Code Online (Sandbox Code Playgroud)

这是另一种类型:

public class Target {

   public object Model { get; set; }

   string GetName(){

     //Use Model and return myCar in this Example
   }

}
Run Code Online (Sandbox Code Playgroud)

正如我在代码中展示的那样,该GetName方法必须使用对象类型(Model)并在此示例中返回myCar实例的名称?你有什么办法可以做到这一点?

更新 如何:

public class Car {

  public string Title { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

我传递给目标: target.Model = Car.Title

GetName()返回方法Title

.net c# reflection c#-4.0

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

克隆通过jQuery在MVC 3中输入和验证

我使用MVC3模型Validation和Unobtrusive进行显示验证,并尝试找到克隆元素和验证的方法.

这是我的查看代码:

<div id="d1" class="Addable">
@Html.EditorFor(model => model.CellPhone)
@Html.ValidationMessageFor(model => model.CellPhone)
</div>
<input type"button" class="AddE" />
Run Code Online (Sandbox Code Playgroud)

而HTML Dom则是:

<div class="Addable" id="d1">
  <input type="text" value="" name="CellPhone" id="CellPhone" data-val-required="Req."
   data-val-regex-pattern="^04[1234][0-9]{6}$" data-val-regex="notValid" data-val="true"
   class="text-box single-line valid">

 <span data-valmsg-replace="true" data-valmsg-for="CellPhone" 
  class="invalid-side-note field-validation-valid"></span>
</div>
Run Code Online (Sandbox Code Playgroud)

所以我使用以下脚本来克隆具有更改名称的新脚本,例如数组名​​称:

//Add new Addable div
$('.AddNewE').click(function () {

    var Target = $('.Addable:first');
    var TargetId = $(Target).attr('id');
    var Count = $('.Addable#' + TargetId).size();
    var CloneTarget = $(Target).clone();
    CloneTarget.find('input').val('');
    CloneTarget.insertAfter('.Addable:last');
    var TargetName = $(Target).find('input').attr('name');

    if (Count == 1) {

        var CloneName = TargetName …
Run Code Online (Sandbox Code Playgroud)

validation asp.net-mvc jquery unobtrusive-validation asp.net-mvc-3

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

MVC3中的新T4控制器模板

如您所知,在MVC中创建新的t4模板,需要将CodeTemplates文件夹添加到项目中.有两个主要子文件夹1- AddController,2- AddView我总是使用AddView文件夹添加新模板来生成自定义视图,知道我需要新模板来生成控制器,但是当我将新tt文件添加到AddController文件夹时,模板中没有任何新选项新控制器,总有3个选项:

在此输入图像描述

那么如何在Add Controller窗口中添加新选项以使用我的自定义控制器模板?或者,如果我尝试错误的方式,您有什么建议使用模板生成控制器?

asp.net-mvc t4 controller code-templates asp.net-mvc-3

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

使用OLEDB将AccessFile从Stream读取到DataSet

我使用Oledb读取AccessFile(.accdb)到DataSet,我不知道表名或列,常规实现是:

public void GetAccessDB(string filepath){

this.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " + filepath;
// get Table Names
this.TableNames = new List<string>();
using (System.Data.OleDb.OleDbConnection oledbConnection = new System.Data.OleDb.OleDbConnection(this.ConnectionString))
{
oledbConnection.Open();
System.Data.DataTable dt = null;
dt = oledbConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
foreach (System.Data.DataRow row in dt.Rows)
{
  string strSheetTableName = row["TABLE_NAME"].ToString();
  if (row["TABLE_TYPE"].ToString() == "TABLE")
     this.TableNames.Add(strSheetTableName);
}
oledbConnection.Close();
}


this.Dataset = new System.Data.DataSet();
using (System.Data.OleDb.OleDbConnection oledbConnection = new System.Data.OleDb.OleDbConnection(this.ConnectionString))
{
  foreach (string table in this.TableNames)
  {
    string command = string.Format("SELECT * FROM {0};", table); …
Run Code Online (Sandbox Code Playgroud)

c# oledb ms-access stream c#-4.0

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

ASP.NET MVC 3中ModelState.IsValid的限制

我总是用它ModelState.IsValid来检查我在服务器端正确验证的所有模型验证,但我认为使用它有一个限制.例如,我定义了一个RemoteValidation属性,但如果我禁用,javascript那么ModelState.IsValid不要检查远程验证并始终返回true,问题在哪里?这是一个限制ModelState.IsValid或是我的错?如果有必要,我可以添加我的所有实现.

validation model-view-controller modelstate validationattribute asp.net-mvc-3

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