当前位置:  开发笔记 > 后端 > 正文

Html.BeginForm并添加属性

如何解决《Html.BeginForm并添加属性》经验,为你挑选了3个好方法。

我如何添加enctype="multipart/form-data"到使用生成的表单<% Html.BeginForm(); %>



1> liggett78..:

作为htmlAttributes的一部分,例如

Html.BeginForm(
    action, controller, FormMethod.Post, new { enctype="multipart/form-data"})

或者您可以传递null操作和控制器以获得与BeginForm()相同的默认目标,而不使用任何参数:

Html.BeginForm(
    null, null, FormMethod.Post, new { enctype="multipart/form-data"})


就像一个注释,你可以传递null for action和controller来获得没有参数的BeginForm()相同的默认目标.
@Brad:好评!将其纳入anwer.

2> dp...:

您还可以对强类型版本使用以下语法:

<% using (Html.BeginForm(x=> x.SomeAction(), 
          FormMethod.Post, 
          new { enctype = "multipart/form-data" })) 
   { %>


是的,确实......我相信所有强类型(基于表达式)的方法都在期货装配中(http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471).

3> Nick Olsen..:

我知道这已经过时但如果您需要反复创建该表单,则可以创建自定义扩展:

public static MvcForm BeginMultipartForm(this HtmlHelper htmlHelper)
{
    return htmlHelper.BeginForm(null, null, FormMethod.Post, 
     new Dictionary() { { "enctype", "multipart/form-data" } });
}

用法然后就变成了

<% using(Html.BeginMultipartForm()) { %>

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有