我可以在我的本地计算机上运行我的Asp.Net MVC 2应用程序而不会出现问题.只需运行/调试.
但如果我已经建成它,我就无法发布它!我必须清理解决方案并再次发布.我知道这不是系统关键,但它真的很烦人."一键发布"不是"清洁解决方案,然后单击发布"
确切的错误如下:
错误11使用在应用程序级别之外注册为allowDefinition ='MachineToApplication'的部分是错误的.此错误可能是由于未在IIS中将虚拟目录配置为应用程序引起的.
我怀疑它与Views文件夹中的Web.Config有关,但是为什么只有在我之前构建一次之后.请注意,该应用程序一旦发布就可以正常工作.
当我尝试使用Asp.Net MVC 2中的创建样式操作创建实体时,会发生这种情况.
POCO具有以下特性:
public int Id {get;set;}
[Required]
public string Message {get; set}
Run Code Online (Sandbox Code Playgroud)
在创建实体时,会自动设置Id,因此在Create操作中不需要它.
ModelState表示"需要Id字段",但我没有将其设置为如此.这里有自动发生的事吗?
编辑 - 原因显示
Brad Wilson通过Paul Speranza在下面的一条评论中回答了这个问题的原因,他说(欢呼保罗):
你提供了身份证的价值,你只是不知道你是谁.它位于默认路由的路由数据中("{controller}/{action}/{id}"),其默认值为空字符串,对int无效.使用action参数的[Bind]属性排除ID.我的默认路由是:new {controller ="Customer",action ="Edit",id =""} //参数默认值
编辑 - 更新模型技术
我实际上通过使用TryUpdateModel和与之相关的exclude参数数组改变了我再次这样做的方式.
[HttpPost]
public ActionResult Add(Venue collection)
{
Venue venue = new Venue();
if (TryUpdateModel(venue, null, null, new[] { "Id" }))
{
_service.Add(venue);
return RedirectToAction("Index", "Manage");
}
return View(collection);
}
Run Code Online (Sandbox Code Playgroud) 假设我有网站 http:// localhost/virtual 其中virtual是虚拟目录
我有一个使用JQuery在javascript文件中定义的Ajax请求
$.getJSON("/Controller/Action")
Run Code Online (Sandbox Code Playgroud)
调用此方法时,客户端会尝试在根级别找到URL,即 http:// localhost/Controller/Action
如果我添加波浪号(〜)符号,它将变为 http:// localhost/virtual /〜/ Controller/Action
它应该(如果它是我想要的那样)解析为 http:// localhost/virtual/Controller/Action
有想法该怎么解决这个吗?
要绑定到XAML中的当前DataContext,您可以使用:
<TextBlock Text="{Binding}" />
Run Code Online (Sandbox Code Playgroud)
你如何在混音中使用转换器?当您在路径上拥有属性时,以下内容有效:
<TextBlock Text="{Binding MyProperty,Converter={StaticResource converter}}" />
Run Code Online (Sandbox Code Playgroud)
但我不想这样做; 我只想绑定到datacontext而不是datacontext.MyProperty,如果你理解我的意思.
通过Teamcity 5运行我的Moq测试时出现此错误
测试失败.System.IO.FileNotFoundException:无法加载文件或程序集'Moq,Version = 3.1.416.3,Culture = neutral,PublicKeyToken = 69f491c39445e920'或其依赖项之一.该系统找不到指定的文件.在MyCode.Tests.SomeHandlerTests.Setup()
我当地的测试运行良好; 他们只是在构建服务器上失败了.
我确保组件在Bin中(现在通过RDP查看它们只是双重确定).
由于属性实际上只是附加到程序集的元数据,这是否意味着属性对象仅在请求时创建(例如当您调用GetCustomAttributes时)?
或者他们是在创建对象时创建的?
或者,由CLR的属性扫描创建对象时创建的前2个的组合?
在为LINQ编写方法链时,我可以用两种方式之一做Where语句:
var blackOldCats = cats.Where(cat => cat.Age > 7 && cat.Colour == "noir" )
Run Code Online (Sandbox Code Playgroud)
要么
var blackOldCats = cats.Where(cat => cat.Age > 7).Where(cat => cat.Colour == "noir" )
Run Code Online (Sandbox Code Playgroud)
一个人比另一个人有什么好处吗?
不要过多担心这个例子中的数据类型,但是如果数据类型存在问题,那么也应该知道.
显而易见的一点是该对象已被引用,因此在应用程序中同时出现两个属性更容易,对吧?
我注意到有人在C#中做过这个 - 注意新的()
public class MyClass<T> where T: new(){
//etc
}
Run Code Online (Sandbox Code Playgroud)
这实现了什么?
我能够使用Microsoft 的说明轻松运行 MSSQL 容器
问题是,由于本地运行的 MSSQL 实例,我无法使用端口 1433。
我已将启动行更改为使用30303:1433,但无法连接到位于 的实例localhost:30303。
连接到容器后,我可以使用教程的命令连接到实例:
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
Run Code Online (Sandbox Code Playgroud) asp.net-mvc ×3
c# ×3
sql-server ×2
.net ×1
attributes ×1
binding ×1
docker ×1
generics ×1
javascript ×1
jquery ×1
nunit ×1
silverlight ×1
sql ×1
teamcity ×1
xaml ×1