asp.net-mvc – 使用Html.BeginForm与querystring
我的网址如下所示:
customer/login?ReturnUrl=home 在登录视图中,我使用了这种可以正常工作的代码模式。 @using(Html.BeginForm()) { ... } 这神奇地生成以下html <form action="customer/login?ReturnUrl=home" method="post"> 但现在,我需要在表单中添加一个属性(例如,data-id =“something”)。我怎样才能做到这一点?如果我没有任何查询字符串,我知道我可以这样做: @using(Html.BeginForm(action,controller,FormMethod.Post,new { data_id="something" })) 但是不知道如何添加应该在html中的querystring: <form action="customer/login?ReturnUrl=home" method="post" data-id="something"> 我想到了使用< form>直接但不知道如何指定querystring哪个是可变的。我不知道如何用Html.BeginForm来实现它。任何提示将不胜感激。 解析度: 现在,我使用了< form>具有以下提示How to get current url value in View.结果视图看起来像 <form action="@Request.Url.PathAndQuery" data-id="something" method="POST"> 但是对于这一点,可以使用BeginForm的重载方法。 解决方法
我猜这不直接回答这个问题,但是为什么不使用一个简单的旧格式标签?
<form action='customer/login?ReturnUrl=@Request.QueryString["ReturnUrl"]' method="post" data-id="something"> 或者,您可以创建一个自定义的HtmlHelperExtension,它使用路径和查询字符串呈现表单。在这个HtmlHelperExtension中,您可以遍历查询字符串值并填充routeValueDictionary,然后传递给Html.BeginForm构造函数。 如果你不想要这样可扩展的东西,你可以使用Html.BeginForm的重载构造函数@ Html.BeginForm(“login”,“customer”,new {ReturnUrl = @ Request.QueryString [“ReturnUrl”]},FormMethod.Post,new {data-id =“something”}); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – MVC3非顺序索引和DefaultModelBinder
- 迁移WPF项目到.NET Core
- asp.net-mvc – 查看模板代码标签 – asp.net mvc – regd
- .net – 不能使用moles来模拟MVC框架
- wcf – aspNetCompatibilityEnabled =“true”
- asp.net – 为什么我不能使用NuGet删除包?
- EFCore 5 中的 DbContextFactory
- asp.net-mvc-5 – 如何使用asp.net身份更改当前用户的UserN
- ASP.NET
- asp.net-mvc – 向MVC 3添加基于声明的授权
- asp.net-mvc – MVC 4 OAuth – NotImplementedE
- asp.net – 如何在网格视图中设置样式模板字段(附
- asp.net-mvc – ASP.NET MVC:HTTPContext和依赖
- asp.net – 将web应用程序的项目编译成dll
- asp.net-mvc – 405消息,Web Api不允许的方法
- asp.net – 无法使用PreSendRequestHeaders()覆盖
- asp.net – 可以在.NET Framework和.NET Core之间
- asp.net – 网站无法启动另一个网站可能使用相同
- asp.net-mvc – EditorForModel – 使用editorfo
- asp.net – 在Repeater控件中实现功能链接