我将我的项目迁移到mvc 5.0并使用Microsoft Instruction将 razor engin 3迁移
但是打开我的解决方案时得到这个:
Web项目"ProjectName"需要缺少与Visual Studio一起运行的Web组件.您是否要立即使用Web平台安装程序下载并安装它们?(注意:某些组件可能需要重新启动才能生效.)
使用Razor语法3.0.0.0的ASP.NET网页
但这些答案对我没有帮助,我感谢你的帮助
更新: 我的项目构建很好,并且没有任何例外使用razor 3和mvc 5,但只是Intellisense没有感知我的打字和着色我的代码
并且当在Application web Config文件中将此行更改为Value ="2.0.0.0"时,错误消失并且intelisens工作正常
<appSettings>
<add key="webpages:Version" **value="3.0.0.0"** />
...
</appSettings>
Run Code Online (Sandbox Code Playgroud)
更新 一段时间后,现在你可以使用razor 3 on vs 2012. 在这里你可以升级
我想重定向到其他Controller中的一个动作,但它在这里不起作用我的ProductManagerController中的代码:
[HttpPost]
public ActionResult RedirectToImages(int id)
{
return RedirectToAction("Index","ProductImageManeger", new { id=id });
}
Run Code Online (Sandbox Code Playgroud)
这在我的ProductImageManagerController中:
[HttpGet]
public ViewResult Index(int id)
{
return View("Index",_db.ProductImages.Where(rs=>rs.ProductId == id).ToList());
}
Run Code Online (Sandbox Code Playgroud)
它没有参数很好地重定向到ProductImageManager/Index(没有错误)但是使用上面的代码我得到这个:
参数字典包含"... Controllers.ProductImageManagerController"中方法"System.Web.Mvc.ViewResult Index(Int32)"的非可空类型"System.Int32"的参数"ID"的空条目.可选参数必须是引用类型,可空类型,或者声明为可选参数.参数名称:参数
我有两个方法,并且由http动词区分:
public class ProductImageController : Controller
{
[HttpGet]
public ViewResult Create(int productId)
{
return View(productId);
}
[HttpPost]
public ViewResult Create(int productId)
{
}
}
Run Code Online (Sandbox Code Playgroud)
但是获取错误:
已经定义了一个名为'Create'的成员,它具有相同的参数类型
我想在EntityFrameWork 6中使用Scaffolding,但得到这个:
无法检索'[myNameSpace] .Models.prod'的元数据.无法将类型为"System.Data.Entity.Core.Objects.ObjectContext"的对象强制转换为"System.Data.Objects.ObjectContext".
EF 6支持脚手架吗?
更新
过了一段时间,微软发布了新的升级版,以支持scafolding和其他一些功能
我认为将IDE升级到2013时它不起作用
我先使用EF代码.一个简单的模型:
item { public int Id {set; get;},... ,ICollection<ItemImages> {set; get;} }
itemImages {
public int Id {set; get; },
public int ItemId {set; get; }
, ... ,
public Item Item {set; get; }
}
ItemConfig:EntityTypeConfiguration<Item>
{
//some config statement;
//...
// mark child delete when parent delete: waterfall delete.
HasRequired(rs => rs.ItemCat).WithMany(rs => rs.Items).HasForeignKey(rs => rs.ItemCatId).WillCascadeOnDelete(true);
}
Run Code Online (Sandbox Code Playgroud)
当通过Remove()删除实体时,它会很好地删除项目和相关子项(项目图像记录).
_db.Item.Remove(DeleteThisObj);
_db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
但标记为删除时:
_db.Entry(DeleteThisObj).State = EntityState.Deleted;
_db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
得到错误:
操作失败:无法更改关系,因为一个或多个外键属性不可为空.当对关系进行更改时,相关的外键属性将设置为空值.如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象.
我在本地iis上发布我的项目时没有任何警告,它正常工作(localhost/[myprojectName]).所以,我用可爱的ftp将它们上传到服务器.但在服务器中我得到这个错误apear我所有的归档像[tableName].[filedName]:
在所选数据源上找不到名为"ConfirmStatuse.Name"的字段或属性
这是我的代码:
<asp:GridView ID="ordergv" runat="server" DataKeyNames="Id" AutoGenerateColumns="False" DataSourceID="SummaryOfOrderSrc" AllowSorting="True">
<Columns>
<asp:CommandField SelectText="select" ShowSelectButton="True" ButtonType="Button"/>
<asp:BoundField DataField="OrderId" />
<asp:BoundField DataField="ConfirmStatuse.Name" />
<asp:BoundField DataField="OrderStatuse.Name"/>
<asp:BoundField DataField="PaymentStatuse.Name"/>
<asp:BoundField DataField="ShipmentStatuse.Name" />
<asp:TemplateField >
<ItemTemplate>
<asp:Label ID="CreatedDateLabel" runat="server" Text='<%# GetPersianDate( Eval("CreatedDate")) %>' /></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:LinqDataSource ID="SummaryOfOrderSrc" runat="server" ContextTypeName="Ahooratech.DAL.DataClasses1DataContext" EntityTypeName="" OrderBy="CreatedDate desc" TableName="Orders">
</asp:LinqDataSource>
Run Code Online (Sandbox Code Playgroud)
我在本地iis和服务器上检查我的项目的大小.两者都相同(8,459,009字节)
所以这意味着我使用相同的数据库和相同的文件来运行我的应用程序在本地和服务器上运行.为什么我只在服务器上得到这个错误?
这里唯一的区别是iis的版本,我认为我的服务器iis版本是7.0.但是我收到这个错误很重要吗?!!! 我不这么认为.我真的很困惑.
(我的本地项目和服务器项目使用相同的连接字符串).
编辑:我在另一台主机上发布项目,它的工作原理!但它还没有在我原来的服务器上运行.
我想读取T型的值
public virtual ActionResult Edit(TEditDTO editedDTO)
{
if (!ModelState.IsValid) return View(editedDTO);
var t = editedDTO.GetType();
var prop = t.GetProperty("Id") ;
var Id = prop.GetValue(t); // get exception
}
Run Code Online (Sandbox Code Playgroud)
但得到
对象与目标类型不匹配
我有一个简单的一列表,有两个值.我选择它并使用distinct修饰符连接值,但它只获取最新值.我对DISTINCT有误解吗?
DECLARE @table TABLE(Id int)
DECLARE @result VARCHAR(MAX) = ''
INSERT @table VALUES(1), (2)
SELECT
@result = @result + CAST( Id AS VARCHAR(10)) + ','
FROM
@table
SELECT @result --— output: 1,2,
-------same With distinct
SET @result = ''
SELECT DISTINCT @result = @result
+ CAST( Id AS VARCHAR(10)) + ','
FROM @table
SELECT @result --— expected output: 1,2, actual output: 2, why?
Run Code Online (Sandbox Code Playgroud) 我在类中有一个变量,名称为Id
:
public class myClass
{
GUID Id;
}
Run Code Online (Sandbox Code Playgroud)
如何在Id
变量上使用多态来获取int类型或GUID类型?
我想要这样的东西,但它只获得GUID或int:
编辑:
public class myClass
{
Guid || int Id;
}
Run Code Online (Sandbox Code Playgroud)
我想要它,以便在类的初始化时定义int或Guid.
我有一个模特:
Ext.define('CrudTest.model.User', {
extend: 'Ext.data.Model',
idProperty: 'Id',
fields: [
{ name: 'Id', type: 'int' },
{ name: 'Name', type: 'string' },
{ name: 'PhoneNumber', type: 'int' },
{ name: 'Address', type: 'string' },
{ name: 'StateId', type: 'int', reference: 'State' },
],
validators: [
{ type: 'presence', field: 'Name', message: 'define name, please' },
{ type: 'length', field: 'PhoneNumber', max: 8, messsage: 'lower than 8 digit' },
],
proxy: {
type: 'ajax',
api: {
create: 'home/new',
read: 'home/users',
update: 'home/Edit', …
Run Code Online (Sandbox Code Playgroud) 我正在使用imageresizer,它在运行时运行良好:
foreach (string fileKey in Request.Files.Keys)
{
//Skip unused file controls.
var file = Request.Files[fileKey];
if (file.ContentLength <= 0) continue;
//Get the physical path for the uploads folder and make sure it exists
string desFolder = Server.MapPath("~/Data/ProductImages/") + productId.ToString();
if (!Directory.Exists(desFolder)) Directory.CreateDirectory(desFolder);
//string fileName;
string guid = System.Guid.NewGuid().ToString();
//Generate each version
foreach (string suffix in versions.Keys)
{
//Generate a filename (GUIDs are best).
string filePath = Path.Combine(desFolder, guid + suffix);
//Let the image builder add the correct extension based on …
Run Code Online (Sandbox Code Playgroud) 在Windows中:
?
角色û
角色!前导零没有价值.
实际上,我想?
从(RDLC)的Chr(251)
函数中获取check mark(), Client Report Definition
但它得到了我û
!
我认为它将四个数字解释为十六进制而不是十进制.
我想在数据传输对象,DTO对象中具有readonly属性,没有设置; 访问者如:
public class ViewBannerDTO
{
public int Id { get; }
}
Run Code Online (Sandbox Code Playgroud)
但为什么得到:
'ViewBannerDTO.Id.get'必须声明一个body,因为它没有标记为abstract或extern.自动实现的属性必须定义get和set访问器.
以及为什么我不能:
public readonly int Id{get;}
Run Code Online (Sandbox Code Playgroud) c# ×7
asp.net-mvc ×3
.net ×2
.net-4.0 ×1
ajax ×1
ascii ×1
asp.net ×1
character ×1
distinct ×1
extjs ×1
http-verbs ×1
iis-7.5 ×1
imageresizer ×1
migrate ×1
model ×1
properties ×1
proxy ×1
razor ×1
rdlc ×1
redirect ×1
scaffolding ×1
sql ×1
sql-server ×1
t-sql ×1
types ×1
unicode ×1
windows ×1