我是MVC的新手,当我为代码第一种方法构建模型类时,每个键ID列都具有属性[ScaffoldColumn(false)]
集.我这样做是因为我不想在明显的视图中显示的ID的,我知道周围的工作对这个问题会删除通过包含一个ID字段每个视图的UI生成的HTML.
我在模型中使用ScaffoldColumn
set to 遇到的问题false
首先被注意到,当一个视图的Edit方法被触发时,我收到了这个错误:存储更新,插入或删除语句影响了意外的行数(0).当我在调试中运行代码时,ID属性实际上设置为零,如我的视图Edit HttpPost
方法中所示.
我的问题,我希望有人可以详细阐述,是什么在具有类似于属性点ScaffoldColumn
,如果ID没有被发送到控制器的方法(S)喜欢在这种情况下,编辑在MVC HttpPost
?我应该以旧时尚的方式解决这个问题,并删除由此属性未添加到键/外键属性时生成的MVC模板创建的每个视图中的HTML标记?
我找到了这个问题,如果你设置这个属性false
是为每个HttpPost
方法添加一个ID参数,而不是在调用之前设置适当的ID属性字段SaveChanges()
.
我正在使用带有详细视图的MVC3,需要显示格式化的美元金额,如$ 1,200.00.在这种情况下,控制器将MonthlyMortgage传递给视图.但是,下面的代码行不会显示正确的字符串格式.显示的是$ 1200.00,我需要的是$ 1,200.00.
我试过了:
$@String.Format("{0:c}", Html.DisplayFor(model => model.MonthlyMortgage))
Run Code Online (Sandbox Code Playgroud)
我试过这个:
$@String.Format("{0:#,###,###,##0.000}", Html.DisplayFor(model => model.MonthlyMortgage))
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我为什么这不起作用?
我正在尝试数据库第一种方法,使用带有Adventureworks2012数据库的向导创建ADO.NET实体数据模型.
测试数据库连接是否正常,连接字符串将添加到App.Config中.
我除了选择标记为(DBO)中的那些所有的表AWBuildVersion
,DatabaseLog
和ErrorLog
.
向导完成后,.edmx
文件为空,如果我在XML视图中查看该文件,EntityContainer
则为空.
创建模型后,它会在输出窗口中返回此错误:
由于以下异常,无法生成模型:'表AdventureWorks2012.Production.Document由关系引用,但无法找到.
我正在使用VS 2010和.NET Framework 4.0
我一直在试图找出为什么返回格式为下拉列表的美国国家列表的Linq查询在代码返回到调用方法时不会强制转换为List.我得到的错误是:
无法将类型为'WhereSelectListIterator'2 [StateListing.States,<> f__AnonymousTypea'2 [System.String,System.String]]'的对象强制转换为'System.Collections.Generic.List`1 [StateListing.States]'
来自错误的名称空间StateListing是一个dll库,它有一个名为States的类,它返回一个IEnumerable状态列表,如下所示.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace StateListing
{
public class States
{
public string StateAbbriviation { get; set; }
public int StateID { get; set; }
public string StateName { get; set; }
static int cnt = 0;
public static IEnumerable<States> GetStates()
{
return new List<States>
{
new States
{
StateAbbriviation = "AL",
StateID=cnt++,
StateName = "Alabama"
},
new States
{
StateAbbriviation = "AL",
StateID=cnt++,
StateName = "Alaska"
}
//Continued …
Run Code Online (Sandbox Code Playgroud) 我有一个UnitOfWork类,我需要编写为Generic但是当我在我的控制器中实例化这个类时,我得到一个构建错误"ProjectName.Models.Person不能用作类型参数TEntity.没有ProjectName的隐式引用转换. Models.Person to System.IDisposable".
这是我的工作单元类,它实现了IDisposiable并期望一个TEntity类类型.此类没有构建错误:
public class UnitOfWork<TEntity> where TEntity : class, IDisposable
{
private RogDataContext context = new RogDataContext();
private GenericRepository<TEntity> thisRepository;
public GenericRepository<TEntity> DataRepository
{
get {
if (this.DataRepository == null)
{
this.thisRepository = new GenericRepository<TEntity>(context);
return thisRepository;
}
return thisRepository;
}
}
public void Save()
{
context.SaveChanges();
}
private bool disposed = false;
protected virtual void Dispose(bool disposing)
{
if (!this.disposed)
{
if (disposing)
{
context.Dispose();
}
}
this.disposed = true;
}
public void Dispose()
{
Dispose(true); …
Run Code Online (Sandbox Code Playgroud) 我已经在这个MVC3项目上工作了几个月,并且试图将用于列出表格下拉列表中的值的一些表转换为未映射为表的类.由于某些未知原因,我开始使用VS2012 Express"无法加载文件或程序集'EntityFramework,Version = 4.4.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'或其中一个依赖项"来获取此错误.
我试图删除EntityFramework引用,然后用NewGet添加它,但通过NewGet提供的版本是5.0.0.0.
我的问题是,当它只提供5.0.0.0版时,如何通过NewGet引用正确的EntityFramework build 4.4.0.0?