我ViewContext.RouteData.Values["Controller"]用来获取控制器名称或ViewContext.RouteData.Values["action"]在视图中获取操作名称(实际上在_Layout中),但是对于区域来说这ViewContext.RouteData.Values["Area"]不起作用.您有什么建议在programmaticaly视图中获取区域名称?
这是我的表:
成员: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) 我使用 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) 这些是我的表:
Id, PointsId, Member_Id, CartId, RegisterDate, PointId, 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你的建议是什么?
这是我的观点:
@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)
你的建议是什么?
假设这种类型:
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?
我使用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
如您所知,在MVC中创建新的t4模板,需要将CodeTemplates文件夹添加到项目中.有两个主要子文件夹1- AddController,2- AddView我总是使用AddView文件夹添加新模板来生成自定义视图,知道我需要新模板来生成控制器,但是当我将新tt文件添加到AddController文件夹时,模板中没有任何新选项新控制器,总有3个选项:

那么如何在Add Controller窗口中添加新选项以使用我的自定义控制器模板?或者,如果我尝试错误的方式,您有什么建议使用模板生成控制器?
我使用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) 我总是用它ModelState.IsValid来检查我在服务器端正确验证的所有模型验证,但我认为使用它有一个限制.例如,我定义了一个RemoteValidation属性,但如果我禁用,javascript那么ModelState.IsValid不要检查远程验证并始终返回true,问题在哪里?这是一个限制ModelState.IsValid或是我的错?如果有必要,我可以添加我的所有实现.
validation model-view-controller modelstate validationattribute asp.net-mvc-3
asp.net-mvc ×4
c# ×2
c#-4.0 ×2
razor ×2
sql ×2
sql-server ×2
t-sql ×2
validation ×2
.net ×1
alter-table ×1
angular ×1
controller ×1
jquery ×1
modelstate ×1
ms-access ×1
oledb ×1
reflection ×1
sql-scripts ×1
stream ×1
t4 ×1
typescript ×1