加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 具有接受routeValues和htmlAttributes的重载的Be

发布时间:2020-12-16 00:21:43 所属栏目:asp.Net 来源:网络整理
导读:我使用接受routeValues的Begin.Form的重载 % RouteValueDictionary routeValues = ViewContext.RouteData.Values; routeValues.Add("TestRoute1","test"); using (Html.BeginForm( "Category","Home",routeValues,FormMethod.Post )) { % input type="submit
我使用接受routeValues的Begin.Form的重载
<% 
        RouteValueDictionary routeValues = ViewContext.RouteData.Values;
        routeValues.Add("TestRoute1","test");

        using (Html.BeginForm(
            "Category","Home",routeValues,FormMethod.Post

      ))
       { %>  

        <input type="submit" value="submit" name="subform" />
<% }%>

这很好,并将formtag渲染为:

<form method="post" action="/Home/Category?TestRoute1=test">

我需要更改htmlAttributes,这就是为什么我使用:

<% 
        RouteValueDictionary routeValues = ViewContext.RouteData.Values;
        routeValues.Add("TestRoute1",FormMethod.Post,new {id="frmCategory"}

      ))
       { %>  

        <input type="submit" value="submit" name="subform" />
<% }%>

结果是完全错误的:

<form method="post" id="frmTyreBySizeCar" action="/de/TyreSize.mvc/List?Count=12&amp;Keys=System.Collections.Generic.Dictionary%....

我可以在Formhelper的来源中看到原因是什么。

有2个重载适用于我给定的参数:

public static MvcForm BeginForm(this HtmlHelper htmlHelper,string actionName,string controllerName,object routeValues,FormMethod method,object htmlAttributes)

public static MvcForm BeginForm(this HtmlHelper htmlHelper,RouteValueDictionary routeValues,IDictionary<string,object> htmlAttributes)

它出错了,因为第一种方法被拿起来。如果我不提供htmlAttributes,那么没有重载,对象作为参数,everyrthing按预期方式工作。

我需要一个接受RouteValues和htmlAttributes Dictionary的解决方法。我看到有重载有一个额外的routeName,但这不是我想要的。

编辑:eugene显示正确的使用BeginForm。

Html.BeginForm("Category",new RouteValueDictionary { {"TestRoute1","test"} },new Dictionary<string,object> { {"id","frmCategory"} }

)

解决方法

使用(RouteValues和HtmlAttributes都是对象):
Html.BeginForm("Category",new { TestRoute1 = "test" },new { id = "frmCategory" }
)

或(RouteValues和HtmlAttributes都是字典):

Html.BeginForm("Category","frmCategory"} }
)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读