ValidateInput跨站点脚本防护无法正常运行Asp.net MVC

有效输入无效。即使使用html标签发布表单,表单也将被提交并显示success视图 <b> hello </b> 为什么跨站点脚本防护无法正常工作?应该默认启用它吧?

剃刀视图

<h4 style="color:purple">
    <b>ID:</b>    @ViewBag.ID <br />
    <b>Name:</b>  @ViewBag.Name <br />   
</h4>
<hr />

@using (html.beginform("register","Adder",FormMethod.Post))
{
    <div class="form-group">
        @Html.TextArea("comments");
        <input type="submit" />

    </div>
}

控制器方法

[HttpPost]
        public string register(string val)
        {

          //  quickdbEntities1 ent = new quickdbEntities1();
          //  Player p1 = ent.Players.FirstOrDefault(p => p.Name == "name");
          ////  ent.Players.Add(player);
          ////  int res = ent.SaveChanges();


          //  ViewBag.id = player.PlayerId;
          //  ViewBag.Name = p1.Name;
            return ("success");
        }

更新:

我添加了 DataAnnotation [必填],现在使用的是这样的表单。仍然提交表单

@model Vidly.Domain.Player
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

@section scripts
{

    @Scripts.Render("~/bundles/jqueryval" )

}

@using (html.beginform("register",FormMethod.Post))
{
    <div class="form-group">
        @Html.TextBoxFor(m => m.Name,new { @class = "form-control" })
        @Html.ValidationmessageFor(m => m.Name)
        <input type="submit" name="submit" />

    </div>
}
sky68242 回答:ValidateInput跨站点脚本防护无法正常运行Asp.net MVC

这是因为您正在视图页面中接受参数作为字符串且没有验证脚本(因为我们无法查看布局页面是否包含脚本)。

本文链接:https://www.f2er.com/3119569.html

大家都在问