我正在开发一个asp.net mvc 5应用程序,我试图通过应用下面的代码重定向到ReturnUrl:
[HttpPost]
[AllowAnonymous]
public ActionResult Login(UserLogin model, string returnUrl)
{
if (ModelState.IsValid)
{
string EncryptedPassword = GetMD5(model.Password);
if (DataAccess.DAL.UserIsValid(model.Username, EncryptedPassword))
{
FormsAuthentication.SetAuthCookie(model.Username, true);
if (String.IsNullOrEmpty(returnUrl))
{
return RedirectToAction("Index", "Home");
}
else
{
Response.Redirect(returnUrl);
}
}
else
{
ModelState.AddModelError("", "Invalid Username or Password");
}
}
return View();
}
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,但问题是,当我发布登录表单时,它给了我一个我从未遇到过的异常,并且我很难解决在Login.cshtml视图中生成的异常,在线:
@Html.AntiForgeryToken()
Run Code Online (Sandbox Code Playgroud)
它抛出的异常:
发送HTTP标头后,服务器无法附加标头.
我研究了很多,但我无法得出结论.当我删除@ Html.AntiForgeryToken()行时,我的应用程序工作正常,但我不想这样做,我希望我的应用程序保持跨站点请求保护.
任何人都可以帮助我,我如何摆脱这个例外?
这是我的另一个障碍,我希望我的网站保持跨站点攻击,我正在通过使用asp.net mvc 5通过Ajax请求开发一个Master/Detail表单,所以,为了创建一个条目,我'通过这种方式来完成Ajax请求的过程:
$.ajax({
url: '/Sales/Create',
data: JSON.stringify(salesmain),
type: 'POST',
contentType: 'application/json;',
dataType: 'json',
success: function (result) {
if (result.Success == "1") {
window.location.href = "/Sales/index";
}
else {
alert(result.ex);
}
}
});
Run Code Online (Sandbox Code Playgroud)
现在,它没有像ajax请求那样导航到Sales Controller中的Create操作,在此之前,它会抛出以下异常:
所需的防伪表单字段"__RequestVerificationToken"不存在.
我在谷歌搜索了很多但仍然不成功,这就是为什么我在这里,我读过一些博客,说使用jquery获取隐藏的__RequestVerificationToken字段并将其附加到表单值,包含JSON.stringify(salesmain)在一个函数中,这样:
$.ajax({
.
.
addRequestVerificationToken(JSON.stringify(salesmain))
Run Code Online (Sandbox Code Playgroud)
和功能:
function addRequestVerificationToken(data) {
data.__RequestVerificationToken = $('input[name=__RequestVerificationToken]').val();
return data;
};
Run Code Online (Sandbox Code Playgroud)
另外,我已经有了以下代码结构:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
.
.
Run Code Online (Sandbox Code Playgroud)
和Create操作之前的属性:
[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult Create([Bind(Include = "SalesId,ReferenceNo,SalesDate,SalesPerson")] SalesMain salesMain)
{
.
.
Run Code Online (Sandbox Code Playgroud)
而且我也在使用jQuery 1.5,可能是它的罪魁祸首,如果不是那么我应该怎么做才能解决这个问题?任何帮助将深表感谢,在此先感谢:)
以下代码工作正常:
DateTime d1 = DateTime.Now;
DateTime d2 = DateTime.Now.AddDays(-1);
int d3 = (int)(d1 - d2).TotalDays;
Run Code Online (Sandbox Code Playgroud)
但是,如果我定义DateTime为DateTime?:
DateTime? d1 = DateTime.Now;
DateTime? d2 = DateTime.Now.AddDays(-1);
int d3 = (int)(d1 - d2).TotalDays;
Run Code Online (Sandbox Code Playgroud)
带下划线的红色错误
无法隐式转换'System.TimeSpan?' 到'System.TimeSpan'
是否可以获得定义为可为空的两个日期时间之间的天数差异?
我有两个标签,标签1和标签2,当最初加载页面,在第一标签中的图形被加载在同一时间,这是件正确的col-md-6,现在,当我点击选项卡,在该选项卡图被折叠到第一个的近一半,我希望它也适合于col-md-6正确和罚款,有什么我做错了吗?
请看看这个jsfiddle
我正在开发一个asp.net mvc 5应用程序,我正在尝试为dd/MM/yyyy格式设置验证,我一直在努力寻找合适的解决方案,但没有成功,我想要它接受:
24/01/2016
但它显示验证消息:
字段JoiningDate必须是日期.
这是我尝试过的:
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime JoiningDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
此外,我希望它在用户端的任何地方以dd/MM/yyyy格式显示日期,但这是我的问题的第二部分,首先,它至少应该允许有效的日期输入.我坚持这个,任何帮助都会深深感激,我已经搜遍了所有,但我无法达到目的,在此先感谢:)
是否可以触发用户单击的双击?请注意,我想要与使用鼠标双击相同的行为,是否可以使用 jQuery 获得相同的行为?到目前为止我尝试过的:
$("#container").dblclick(function() {
//code executed on jQuery double click rather than mouse double click
});
$("#container").click(function() {
$(this).dblclick();
});
Run Code Online (Sandbox Code Playgroud)
当我使用鼠标双击它时,它会正确,它会生成我想要的正确结果,但是当我尝试使用 jQuery 执行它时,它似乎不起作用,请帮助!提前致谢 :)
我知道文件的名称,保存在服务器上,我想获取contentType保存在服务器上的文件,我想要的是这样的:
string loc = Server.MapPath("~/Content/Images/document.*");
Run Code Online (Sandbox Code Playgroud)
但上面的代码不起作用,错误说:
指定了非法字符,即(*)
我的问题是,如何获取我知道并保存在服务器上的文件名的扩展名和内容类型?
jquery ×3
c# ×2
datetime ×2
ajax ×1
content-type ×1
css ×1
events ×1
highcharts ×1
razorengine ×1
tabs ×1
timespan ×1