我想知道你们中是否有人知道一些很好的教程解释大型应用程序的MVVM.我发现的MVVM上的每个教程都只是解释了基础知识(如何实现模型,视图模型和视图),但我对应用程序页面之间传递数据时的技术和模式很感兴趣,初始化视图模型,存储常见应用程序的位置数据(在多个视图模型之间共享)等.
我更喜欢没有任何MVVM框架的纯c#/ XAML解决方案(MVVMLight等).
这可能是一个简单的问题,但我还没有找到解决方法.我想通过ajax调用从服务器下载csv文件(由ASP.NET Web API实现):
$.ajax({
type: "GET",
accepts: "text/csv; charset=utf-8",
url: "/api/employees",
success: function (data) {
}
});
Run Code Online (Sandbox Code Playgroud)
我把上面的jQuery ajax中的Accepts头放了.但是从小提琴手那里,我看到:

Accepts标题现在变为Accept: undefined.如果我试着放:
accepts: {
csv: "text/csv; charset=utf-8"
}
Run Code Online (Sandbox Code Playgroud)
Accepts Header现在转向: Accept: */*

所以我想这是让我的服务器返回JSON对象而不是CSV文件的要点.
如何正确地在jQuery ajax中创建接受头?并且在小提琴手中应该看到:
Accept: text/csv
我正在使用Chrome.
我通过使用以下类正常将JSON字符串反序列化为根对象.
[Serializable]
public class MoviesListRootObject
{
public int count { get; set; }
public Pagination pagination { get; set; }
public List<Response> response { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
...................................
var json = wc.DownloadString(jsonRequestURL);
var rootObj = JsonConvert.DeserializeObject<MoviesListRootObject>(json);
Run Code Online (Sandbox Code Playgroud)
但是,如果我在创建父类,然后继承它的根对象bit,那么在反序列化后我得到null!
[Serializable]
public class RootObject
{
public int count { get; set; }
public Pagination pagination { get; set; }
}
[Serializable]
public class MoviesListRootObject:RootObject
{
public List<MovieResponse> movieResponse { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
..............................................
var json = wc.DownloadString(jsonRequestURL);
var rootObj = JsonConvert.DeserializeObject<MoviesListRootObject>(json);
Run Code Online (Sandbox Code Playgroud) 该模型:
public class UploadFileModel
{
public int Id { get; set; }
public string FileName { get; set; }
public HttpPostedFileBase File { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
控制器:
public void Post(UploadFileModel model)
{
// never arrives...
}
Run Code Online (Sandbox Code Playgroud)
我收到了一个错误
"没有MediaTypeFormatter可用于从媒体类型为'multipart/form-data'的内容中读取'UploadFileModel'类型的对象."
有没有办法解决?
我目前正在ASP.NET MVC 4 Web API中尝试OData端点.我喜欢这个概念,并尝试在我们的项目中提出有效的方法.我有一个问题如下:我们有一个服务,它能够返回一个IQueryable并将一个实体的名称作为输入:
public IQueryable GetAll(string entityName);
Run Code Online (Sandbox Code Playgroud)
在标准Web API(与OData控制器相对)中,我可以创建一个通用控制器,可以以/ api/entities/{entityName}的形式调用并返回IQueryable.如果是OData控制器,我执行以下特定于实体的步骤:
我想使用通用服务并避免尽可能多的特定于实体的实现.如果服务可以返回实体列表和相应类型,则可以轻松地自动完成第一步.这留下了第2步,因为到目前为止我需要为每个实体创建一个特定的控制器.我还想避免这种情况,并创建一个使用通用服务的通用控制器.
任何人都可以通过影响OData路由推荐解决方案吗?
我是web api的新手,我需要为客户端创建一个服务器.我无法控制客户端 - 无法改变一件事.
客户端在POST主体中发送html封装的json请求.但是,内容类型可能会有所不同.我需要做什么才能让我的ApiController处理不同的内容类型?
我用流畅的api制作了Entity Framework Code First.
我有一个web api控制器:
public class NewsController : ApiController
{
private TrafficTheoryContext db = new TrafficTheoryContext();
// GET api/News
public IEnumerable<News> GetNews()
{
//return new List<News> {
// new News{ Title = "Featuring Azure ACS Authentication", Subtile="Hello "}};
return db.News.AsEnumerable();
}
}
Run Code Online (Sandbox Code Playgroud)
如果我发出获取请求,我会收到错误消息:
此XML文件似乎没有与之关联的任何样式信息.文档树如下所示.
<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
The 'ObjectContent`1' type failed to serialize the response body for content type 'application/xml; charset=utf-8'.
</ExceptionMessage>
<ExceptionType>System.InvalidOperationException</ExceptionType>
<StackTrace/>
<InnerException>
<Message>An error has occurred.</Message>
<ExceptionMessage>
Type 'System.Data.Entity.DynamicProxies.News_786DE29B12691F869E9C9DF523A808EABE06546C3FCE3354F77875B83B9EB51C' with data contract …Run Code Online (Sandbox Code Playgroud) 我正在使用bootstrap-datepicker,并希望在bootstrap 2的模式上显示日期选择器.我得到的问题是日期选择器在滚动模态时没有相应滚动,它仍然存在.

代码:
<button class="btn btn-primary" data-toggle="modal" data-target="#myModal">Launch Modal</button>
<div id="myModal" class="modal hide fade" style="height: 400px; overflow: scroll">
<div style="height:300px"></div>
<div>Choose Date:
<input class="calendar" />
</div>
<div style="height:300px"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
和javascript:
var datePicker = $(".calendar").datepicker({});
Run Code Online (Sandbox Code Playgroud)
jsfiddler:http://jsfiddle.net/csrA5/
滚动模态时是否有任何解决方案使其滚动?
javascript css jquery twitter-bootstrap bootstrap-datepicker
我一直在关注OAuth 2.0授权服务器示例代码 http://www.asp.net/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-server
以及查看mugget包Microsoft.aspnet.identity.samples包(install-package Microsoft.aspnet.identity.samples -Pre)
并且我试图了解被动与活动cookie中间件的工作原理.
在授权服务器示例中,"应用程序"cookie设置为被动.在Identity示例中,"ApplicationCookie"处于活动状态.
当我阅读有关此属性的内容时,它解释了只有在匹配的AuthenticationType请求时才会触发被动中间件.
如果我编辑Microsoft.aspnet.identity.samples中的startup.auth.cs文件并将应用程序cookie设置为被动,然后登录,它似乎验证,但不会登录.
深入研究代码,我看到帐户控制器归结为对SignInHelper.SignInAsync的调用
此方法获得用户的声明权限,即调用:CreateIdentityAsync(user,DefaultAuthenticationTypes.ApplicationCookie)
我显然不理解某些东西,因为根据我的阅读并且可以说,cookie具有与Claim相同的AuthenticationType,但是当调用Authentication.SignIn时,Cookie似乎没有设置并且我返回到主页面,包含注册和登录选项.
要复制该问题,请启动一个新的项目空asp.net应用程序,然后安装Identity示例包,然后将startup.auth.cs的app.useCookieAuthentication更改为:
app.UseCookieAuthentication(new CookieAuthenticationOptions {
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider {
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
} …Run Code Online (Sandbox Code Playgroud) c# ×3
.net ×2
jquery ×2
asp.net ×1
c#-4.0 ×1
content-type ×1
cookies ×1
css ×1
file-upload ×1
git ×1
javascript ×1
json.net ×1
middleware ×1
mvvm ×1
oauth-2.0 ×1
odata ×1
owin ×1
smartgit ×1