我正在关注Microsoft的这个ASP.NET MVC教程:
我的代码略有不同,我试图HttpContext.Request.IsAuthenticated在控制器的构造函数中访问.
namespace SCE.Controllers.Application
{
public abstract class ApplicationController : Controller
{
public ApplicationController()
{
bool usuario = HttpContext.Request.IsAuthenticated;
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是HttpContext始终为空.
这个问题有方法解决吗?
MVC中的一项简单任务有时会成为一项艰巨的挑战.
好吧,我有一个名为Admin的区域.我在这个区域的Shared目录中有一个名为"Forbidden"的页面.
目标很简单:我需要创建一个Html.ActionLink,它生成一个链接以返回主页,该主页位于Admin区域的外部.
所以,我尝试,<%= Html.ActionLink("Back","Index",new {controller="Home"})%>并生成:
http://localhost/Admin/Home/Index
Run Code Online (Sandbox Code Playgroud)
错了!我想:
http://localhost/Home/Index
Run Code Online (Sandbox Code Playgroud)
如何创建从区域到默认控制器结构的链接?
我有一个表,其中点击事件绑定到其行(<tr>).<a>这些行中有一些元素,它们分配了自己的点击事件.
问题是,当我点击<a> 元素时,它还会触发来自父元素的click事件<tr>.我不想要这种行为; 我只是想<a>点击click事件.
码:
// Event row TR
$("tr:not(:first)").click(function() {
$(".window, .backFundo, .close").remove();
var position = $(this).offset().top;
position = position < 0 ? 20 : position;
$("body").append( $("<div></div>").addClass("backFundo") );
$("body").append( $("<div></div>").addClass("window")
.html("<span class=close><img src=Images/close.png id=fechar /></span>")
.append( "<span class=titulo>O que deseja fazer?</span>"
+"<span class=crud><a href=# id=edit>Editar</a></span>"
+"<span class=crud><a href=# id=delete codigo="
+ $(this).children("td:first").html()
+ ">Excluir</a></span>" )
.css({top:"20px"})
.fadeIn("slow") );
$(document).scrollTop(0);
});
// <A> Element event
$("a").live("click",function() { alert("clicked!"); });
Run Code Online (Sandbox Code Playgroud)
每当您单击锚点时,它都会从其父行触发事件.有任何想法吗?
我试图在MVC中更新一个简单的模型,但它不起作用,它抛出一个异常,说模型无法更新:
[HttpPost]
public ActionResult SignIn([Bind(Exclude="TxtEmail")]Usuarios usuario,FormCollection fc)
{
try
{
UsuariosModel userModel = new UsuariosModel(usuario);
userModel.Usuarios.TxtEmail = "test@test.com";
UpdateModel(userModel);
if (ModelState.IsValid)
{
[...]
}
[...]
}
Run Code Online (Sandbox Code Playgroud)
这是模型:
[Required(ErrorMessage="**O email é requerido")]
[RegularExpression("^[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,4})$",ErrorMessage="**Email Inválido")]
public string TxtEmail
{
get { return this.txt_email; }
set { this.txt_email = value; }
}
Run Code Online (Sandbox Code Playgroud)
我如何使用此方法"UpdateModel"?
SQL中字段类型BIGINT的限制是什么?
是100000235882380还是100000466411115?(那是Facebook的ID)
有谁知道如何从Recaptcha更改文本语言?
我已经尝试过了:
<script type="text/javascript">
var RecaptchaOptions = {
lang : 'fr',
};
</script>
Run Code Online (Sandbox Code Playgroud)
但它没有改变.
Global.asax 中的Application_AuthenticateRequest方法中的会话始终为null.我已经尝试过:
this.Session,HttpContext.Current.Session
Run Code Online (Sandbox Code Playgroud)
总是空的.
protected void Application_AuthenticateRequest()
{
string userRole = string.Empty;
if (Request.IsAuthenticated)
{
if (this.Session["UserRole"] == null)
{
InsertSessionValue();
}
userRole =Session["UserRole"].ToString();
HttpContext.Current.User = new GenericPrincipal(User.Identity, new string[] {userRole});
}
}
Run Code Online (Sandbox Code Playgroud)
我也尝试使用Cache,但它不起作用,因为我需要每个用户的唯一信息.
如何在Global.asax中使用Session?HttpApplication Application属性是否对每个用户都是唯一的?
我试图从类中返回一个ViewResultin OnActionExecuted方法覆盖ActionFilterAttribute
如下......
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (CreateCookie && filterContext.Exception == null)
{
LoginCookies lcookie = new LoginCookies(usuDs, usuSenha);
lcookie.WriteCookie("SCE", 10);
}
else
{
filterContext.Result = new ViewResult() { ViewName = "Login" };
filterContext.Result.ExecuteResult
(filterContext.Controller.ControllerContext);
}
Run Code Online (Sandbox Code Playgroud)
它可以返回到名为"Login"的视图,但我需要将模型对象传递给此视图(在这种情况下,模型对象是用户的类型),我不知道如何ViewResult直接使用类传递它.
有任何想法吗?
更新:
我已经解决了我的问题设置filterContext.ExceptionHandled为TRUE,但主要问题没有解决,我无法设置Model属性View,它始终为null.
我有一个包含compose主键的表(3列):
UTP_ID (ITEMId)
UTS_ID (CategoryID)
USS_ID (SubCategoryID)
Run Code Online (Sandbox Code Playgroud)
当我尝试更改SubCategory时,例如,使用EF 4,我得到以下错误:
utl.USS_ID = Convert.ToInt32(ddlSubSetor.SelectedItem.Value);
the property is part of the object's key information and cannot be modified
Run Code Online (Sandbox Code Playgroud)
任何想法?为什么我不能改变它?
asp.net-mvc ×4
asp.net ×1
bigint ×1
c# ×1
click ×1
controllers ×1
css ×1
events ×1
favicon ×1
html ×1
httpcontext ×1
jquery ×1
recaptcha ×1
sql ×1