我们有一个静态类库来处理重复的多上下文任务.将EF db上下文创建为静态类的成员是不好的做法吗?
数据库上下文是出于某种原因而被处理掉的.经常处理它们会使连接池"流动"并且可能(这里我推测)确保表不会保持锁定状态.
所以我在静态类中使用db上下文时遇到麻烦,还是我在思考这个?
entity-framework entity-framework-4 entity-framework-4.1 entity-framework-5
我们正在尝试使用一个Ajax(jQuery)调用向ASP应用程序发送多个表单.
我们使用以下jQuery代码:
var formContainer = {
Form1 : form1.serialize(),
Form2 : form2.serialize()
}
$.ajax({
type: "POST",
url: '@Url.Action("CreateModel", "Controller")',
data: formContainer,
success: function (result) { }
});
Run Code Online (Sandbox Code Playgroud)
在服务器上,我们在Request.Form属性中收到以下内容:
Key : Value
Form1 : All serialized form elements for Form1
Form2 : All serialized form elements for Form2
Run Code Online (Sandbox Code Playgroud)
通常我们使用以下方法,因此ASP自动创建具有正确属性值的对象:
public ActionResult CreateModel(ClassForForm1 obj)
Run Code Online (Sandbox Code Playgroud)
但由于这两种形式是一起发送的,因此模型绑定器无法绑定和构建类.因此,对于此操作,我们希望模型构建器使用Request.Form ["Form1"]中的值.
我们不能使用自定义模型绑定器,因为我们使用extern库(DevExpress,他们在此之上编写了自己的实现).
我们使用MEF框架来添加功能(这些功能在视图中添加为表单).出于这个原因,我们不知道后端会有什么期望.因此编写包装器ViewModel是不可接受的.
处理其他表单数据的功能将在其他模块中进行处理.
欢迎任何解决方案!
提前致谢.
我正在开发一个使用ASP.NET MVC 4的应用程序.在某些方面,我觉得我从头开始学习一切:).我被告知它值得.
我需要在控制器中将一些JSON发布到Action.我的行动如下:
[Authorize]
public class MyController : Controller
{
[HttpPost]
public ActionResult RemoveItem(string itemID)
{
// Do stuff...
return Json(new { Status = 1, Message="Success" });
}
}
Run Code Online (Sandbox Code Playgroud)
我的JQuery代码如下所示:
function removeItem(id) {
var json = { "itemID": id };
$.ajax({
type: "POST",
url: "/myController/removeItem",
contentType: "application/json; charset=utf-8",
data: json,
dataType: "json",
success: removeItemCompleted,
error: removeItemFailed
});
}
function removeItemCompleted(results) {
}
function removeItemFailed(request, status, error) {
}
Run Code Online (Sandbox Code Playgroud)
在Fiddler中,我注意到返回了500错误.响应中的TITLE字段说:"无效的JSON原语:itemID".
我究竟做错了什么?
谢谢!
所以我有一个完整的方法可以工作,我在整个网站上使用它:
public PartialViewResult GetBlogEntries(int itemsToTake = 5)
{
...
return PartialView("_BlogPost", model);
}
Run Code Online (Sandbox Code Playgroud)
现在我想从JSON格式的javascript中获取此信息.
public JsonResult GetBlogPostJson()
{
var blogEntry = GetBlogEntries(1);
var lastEntryId = GetLastBlogEntryId();
return Json(new {Html = blogEntry, LastEntryId = lastEntryId}, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
想法就是这样:
$.ajax({
url: '/Blog/GetBlogPostJson',
dataType: 'json',
success: function (data) {
var lastEntryId = data.LastEntryId;
var html = data.Html;
...
}
});
Run Code Online (Sandbox Code Playgroud)
问题是,这当然不会产生字符串,而是产生PartialViewResult.
问题是,如何将PartialViewResult解析为可以用JSON发回的html?
我有一个角度形式,成功使用角度的内置验证.以下面的标记为例:
<form name="numberForm" novalidate>
<input type="text" required />
<button type="submit">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
浏览器加载时,输入字段会像这样呈现(删除了不必要的属性):
<input class="ng-pristine ng-invalid ng-invalid-required" />
Run Code Online (Sandbox Code Playgroud)
如果我在输入字段中输入值,则标记变为:
<input class="ng-dirty ng-valid ng-valid-required" />
Run Code Online (Sandbox Code Playgroud)
所有这一切都很有效.然后我实现了两个jQuery插件来实现窗体的一些屏蔽/输入格式: autoNumeric和jQuery.maskedinput.现在,我所做的一切都不会改变ng-pristine ng-invalid...输入上的原始类.它似乎也不允许模型的绑定成功.
有任何想法吗?
我尝试创建一个http://jsfiddle.net/ma44H/3/,但似乎无法弄清楚如何让它工作.
在新创建的MVC4应用程序中,我想将所有USERProfile成员存储在一个会话中,以便我可以在用户登录后访问所有值.但是Session数组对象仅提出2个替代方案
Session[int]/Session[string]
我需要检索
Session['username']; Session['age']; etc
该课程中存在的任何内容.
全部,如果在会话超时时进行ajax调用,我试图重定向到登录页面.这是我到目前为止所做的.
为所有操作定义操作筛选器.
public class AuthenticateFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
var routeDataSet = filterContext.RouteData;
if (LoginUser.LoginAdministrator == null)
{
//if the useinfo stored in session is timeout.
if (routeDataSet != null
&& routeDataSet.Values["controller"] != null
&& routeDataSet.Values["controller"].ToString().ToLower().Equals("login")
&& routeDataSet.Values["action"] != null
&& routeDataSet.Values["action"].ToString().ToLower().Equals("login"))
{
//if it is login action itself.let it be. don't do anything.
}
else
{
//redirect to login page.
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary { { "controller", "Login" }, { "action", …Run Code Online (Sandbox Code Playgroud) 我曾在一个项目中使用32feet的 .NET库,我正在寻找移植到Mono Runtime的项目.
但是,由于32feet是用C/C++ for Windows编写的,然后包装在.NET中使用,我正在寻找一个等价的.
在过去的3天里,我一直在网上寻找替代方案,空手而归,所以现在是时候寻求帮助
我正在使用我的MVC 4应用程序中的数据注释来处理验证.这样做的一个要求是完全本地化所有错误消息和正则表达式.
为了做到这一点,我写了一个属性扩展,如下所示.
视图:
@Html.LabelFor(m => m.Postcode, new { @class = "input-label", @for = "valid-postcode" })
@Html.TextBoxFor(m => m.Postcode, new { type = "text", id = "valid-postcode", autocomplete = "off" })
@Html.ValidationMessageFor(m => m.Postcode)
Run Code Online (Sandbox Code Playgroud)
模型:
// Postcode
[Required(ErrorMessageResourceType = typeof(Resources.FormValidation), ErrorMessageResourceName = "requiredMsg")]
[Localised(typeof(Resources.FormValidation), "postcodeRegEx", "postcodeMsg")]
[Display(Name = "postcode", ResourceType = typeof(Resources.FormLabels))]
public string Postcode { get; set; }
Run Code Online (Sandbox Code Playgroud)
属性扩展:
public class LocalisedAttribute : RegularExpressionAttribute
{
public LocalisedAttribute(Type resource, string regularExpression, string errorMessage)
: base(Resources.FormValidation.ResourceManager.GetString(regularExpression))
{
ErrorMessageResourceType = …Run Code Online (Sandbox Code Playgroud) asp.net-mvc localization data-annotations asp.net-mvc-4 asp.net-mvc-5
我正在尝试使用OAuth bearer令牌Web API 2供应,但我不知道如何解密它们或获取数据.
我真正想做的是找到或写一个与Google Tool相同的工具https://developers.google.com/wallet/digital/docs/jwtdecoder,以获取我从Web API获得的令牌.Google工具允许您粘贴表示JWT令牌的文本字符串,然后将其拆分并取消对JSON内的JSON编码.
在Visual Studio 2013中,如果选择"新建ASP.NET项目",然后选择具有单个用户帐户的Web API模板,则会获得包含令牌端点的示例项目.如果您启动项目,则可以在内置的Web服务器上将请求"grant_type = password&username = joe&password = joe"发送到/ token,然后您将获得一个令牌:
{
"access_token":"x3vHm40WUXBiMZi_3EmdmCWLLuv4fsgjsg4S5Ya8kppDY_-2ejn7qF5Y_nbQ0bYVIKl6MNzL2GtXv-MAuwjippAAv5VDaxoKdxEVxeFrQ_eXsKNaQK7IvmVs1rIZ9eeRfRGK2AQ59wWQcyTtYO0dPJx9K7PGrSKz4ADAZ9SEZqQ4IesVhYbRCwToyxoyU5L9qdU8jXdHumkIrULRQhf68rIaBrEA_Be-V0rzWJ644fRLvv3z69XoHs3Az7PineILyNwbDck9uU2jkaXnwxoCTa4qlK8bR-lEI9-VXPNdbCvfgb5H9wfYsJcw2CMzNxNhV8v9YVZEt90evylwtTCEpXq4T3zRCQvrpbCvZrXqJ8uvlFeqCsvvhlIkSfPhBY8nm2ocWtBGPZm58zLe5FMi1jept0B54U38ZxkZlrGQKar47jkmnc6gpLrkpDBp7cWz",
"token_type":"bearer",
"expires_in":1209599,
"userName":"joe",
".issued":"Fri, 01 Aug 2014 16:16:02 GMT",
".expires":"Fri, 15 Aug 2014 16:16:02 GMT"
}
Run Code Online (Sandbox Code Playgroud)
我想知道的是access_token所处的格式以及包含的信息.
我发现的一个线索是:您可以通过在Startup.Auth.cs中设置OAuthAuthorizationServerOptions.AccessTokenFormat属性来选择Web API使用的令牌类型.OAuthAuthorizationServerOptions的文档说:
"用于保护访问令牌中包含的信息的数据格式.如果应用程序未提供,则默认数据保护提供程序依赖于主机服务器.ISO上的SystemWeb主机将使用ASP.NET机器密钥数据保护,以及HttpListener和其他自托管服务器将使用DPAPI数据保护.如果分配了不同的访问令牌提供程序或格式,则必须将兼容实例分配给资源服务器的OAuthBearerAuthenticationOptions.AccessTokenProvider或OAuthBearerAuthenticationOptions.AccessTokenFormat属性.
所以它可能使用MachineKey进行编码.没关系,我可以设置机器密钥,但如果我知道创建令牌的机器密钥,我该如何解密?
asp.net-mvc ×6
c# ×5
jquery ×5
javascript ×3
ajax ×2
asp.net ×2
32feet ×1
angularjs ×1
bluetooth ×1
json ×1
localization ×1
macos ×1
maskedinput ×1
mono ×1
oauth ×1