我安装了Visual Studio 11 Beta,突然我在VS 11开发人员预览下创建的所有异步操作方法都开始挂起(显然这个问题:http://blogs.msdn.com/b/pfxteam/archive/2012/03/ 03/10277166.aspx).
我的应用程序使用v4.0.30319作为框架版本,但没有使用4.5的选项.我修复了我的.net 4.5安装,但没有.有没有办法在IIS中配置它?我是否需要bin文件(如果是这样)?
如果我想直接访问RouteData(例如当前动作或参数值)View,而不是必须从控制器传入它作为一部分ViewData,我将使用哪个类?
我正在进行一个REST DELETE调用,返回204.在jQuery 1.8.3中,这有效,并命中request.done回调.但是如果我使用1.9,那么它会在textStatus中使用parsererror发送到request.fail,并在errorThrown中使用'SyntaxError:意外的输入结尾'.
remove = function (complete) {
var self = this;
var request = $.ajax({
context: self,
url: "/v1/item/" + itemId,
dataType: "json",
type: "DELETE"
});
request.done(removeCallback);
request.fail(function (xhr, textStatus, errorThrown) {
alert(errorThrown);
});
},
Run Code Online (Sandbox Code Playgroud)
任何人都知道1.9中会发生什么变化导致失败,以及为了解决这个问题需要改变什么?
所以,回答我自己的问题,看起来这实际上是问题所在:
jQuery.ajax返回空字符串的JSON结果
在1.9之前,期望返回数据类型为JSON或JSONP的ajax调用会将空字符串的返回值视为成功案例,但会将null返回给成功处理程序或promise.从1.9开始,为JSON数据返回的空字符串被认为是格式错误的JSON(因为它是); 这将导致错误.使用错误处理程序来捕获此类情况.
所以,如果删除dataType
dataType: "json",
Run Code Online (Sandbox Code Playgroud)
它适用于jQuery 1.8.3和1.9.
好吧,这有点冗长/模糊,但我在特定情况下得到一个奇怪的错误,我使用Enum作为表键并尝试查询表,同时包含多个多对多相关实体.
以下示例代码中的错误是:
The type of the key field 'DietIs' is expected to be 'MvcApplication8.Models.DietIs', but the value provided is actually of type 'System.Int32'.
Run Code Online (Sandbox Code Playgroud)
在.net 4.5 Web项目中,我有以下实体配置:
public enum DietIs {
None,
Kosher,
Paleo,
Vegetarian
}
public class Diet {
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public DietIs DietIs { get; set; }
public string Description { get; set; }
public virtual ICollection<Recipe> Recipes { get; set; }
public virtual ICollection<Menu> Menus { get; set; }
}
public class Recipe {
public int Id { …Run Code Online (Sandbox Code Playgroud) Facebook是否支持Google的ajax抓取规范,如果是这样,您需要做些什么来实现它?
我正在尝试使用Facebook"赞"按钮来处理此处定义的AJAX可抓取网址:code.google.com/web/ajaxcrawling/docs/specification.html
我有这个网址,我可以直接去,它加载.注意"#!" 在网址中:
当我"喜欢"这个页面时,它应该抓取这个"转义的片段"网址:
为什么不抓这个页面?Facebook linter没有正确抓取我的页面.如果在这里使用Facebook linter工具:developers.facebook.com/tools/debug
它不会使用"#!"正确抓取启用AJAX的URL 在里面.这是Google的规范.Facebook的lint爬虫需要做的是替换"#!" 使用"_escaped_fragment_".我的AJAX启用链接似乎没有这样做.
我试图从标记为一个方法中获得完整的原始文本LuisIntent中的LuisDialog.
文档将这些方法显示为两个参数:
IDialogContext context, LuisResult result
Run Code Online (Sandbox Code Playgroud)
这两者都没有公开披露消息的原始文本.上下文对象确实包含消息但在私有属性(context.data.message.text)中是不可访问的.
有没有办法在中访问它context,还是可以将它传递给对话框构造函数?
这似乎应该是非常明显的,但实体框架的一些东西让我感到困惑,我无法让它工作.
很简单,我有三个表,Id值是标识列:Users(userId,username)Categories(categoryId,categoryName)JoinTable(UserId,CategoryId)composite.
在实体设计器(这是.net 4.0)中,当我导入这些表时,正如预期的那样,连接表不会出现,但用户和类别显示关系.以下代码:
var _context = new MyContext();
var myUser = new User();
myUser.UserName = "joe";
var myCategory = new Category();
myCategory.CategoryName = "friends";
_context.Users.AddObject(myUser);
myUser.Categories.Add(myCategory);
var saved = _context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
返回错误(尽管没有添加到数据库中):
An item with the same key has already been added.
Run Code Online (Sandbox Code Playgroud)
如果我在保存之前添加以下内容:
_context.Categories.AddObject(myCategory);
myCategory.Users.Add(myUser);
Run Code Online (Sandbox Code Playgroud)
我得到相同的错误,并没有保存到数据库.如果我在尝试关联它们之前保存myUser和myCategory对象,它们都会保存,但是第二次保存会抛出错误,而没有添加到连接表中:
Cannot insert the value NULL into column 'UserId', table '...dbo.JoinTable'; column does not allow nulls. INSERT fails. The statement has been terminated.
Run Code Online (Sandbox Code Playgroud)
我显然无法理解插入了多少个关系.我错过了什么?
我在页面上有一个搜索框(实际上是在部分视图中但不确定是否相关)和Html.TextBox控件.
<%= Html.TextBox("query", ViewData["query"], new { style = "width: 90%;" })%>
Run Code Online (Sandbox Code Playgroud)
action方法将"query"作为参数,我编辑此值以清理传入的字符串:
public ActionResult SearchQuery(string query) {
ViewData["query"] = StringFunctions.ProperCasing(query.Replace("_", " "));
Run Code Online (Sandbox Code Playgroud)
但是,当它到达Html.TextBox时,将保留原始查询值(在本例中为下划线).我可以看到编辑的值在ViewData字段中,例如,如果:
query == "data_entry"
Run Code Online (Sandbox Code Playgroud)
然后,在传递给action方法之后
ViewData["query"] == "data entry"
Run Code Online (Sandbox Code Playgroud)
但是当它到达视图时,Html.TextBox中的值仍然是"data_entry".似乎操作方法参数"query"和搜索框形式参数"query"之间存在冲突.任何人都知道这里发生了什么,或者是否有另一种传递价值的方法?
此操作方法与发布搜索框数据所产生的操作分开.
当您设置Aurelia计算属性时,您可以声明依赖关系以避免轮询(请参阅:Aurelia的更改检测是否正常工作的常量轮询?).
get fullName(){
return `${this.firstName} ${this.lastName}`;
}
}
declarePropertyDependencies(Welcome, 'fullName', ['firstName', 'lastName']);
Run Code Online (Sandbox Code Playgroud)
但是,如果要使用对象属性中的值,您将如何执行此操作?
this.person = { firstName: 'John', lastName: 'Doe' }
get fullName(){
return `${this.person.firstName} ${this.person.lastName}`;
}
Run Code Online (Sandbox Code Playgroud)
当然,这显示正常,但是当您更改person.firstName或person.lastName的值时,声明计算的依赖关系不会触发更新:
declarePropertyDependencies(Welcome, 'fullName', ['person.firstName', 'person.lastName']);
Run Code Online (Sandbox Code Playgroud)
这不是:
declarePropertyDependencies(Welcome, 'fullName', ['person']);
Run Code Online (Sandbox Code Playgroud)
这是否可以使用当前的declareDependencies代码?
.net ×2
asp.net-mvc ×2
.net-4.5 ×1
aurelia ×1
azure-language-understanding ×1
botframework ×1
c# ×1
enums ×1
escaping ×1
forms ×1
fragment ×1
hash ×1
iis ×1
insert ×1
javascript ×1
jquery-1.9 ×1
many-to-many ×1
routedata ×1
textbox ×1