2016-12-07 114 views
-1

我正在制作视图,我使用2个部分视图。每个分部视图都是在数据库中创建新行的表单。如何发送Int32到控制器,MVC

所以我在1视图中得到了2种形式。但通过[HttpPost]知道它全部进入相同的动作控制器,但是我怎样才能在控制器中以我使用的形式知道?

是否有可能只发送一个int到控制器,然后if(int == 1){//do form 1 action},然后与表单2相同?

我刚刚使用了一个模板自动创建窗体,但我不知道如何发送一个自定义的int值到控制器,当我按窗体上的提交按钮。

谢谢。

回答

0

您可以在制作模型时将模型传递给模板。 例如:编辑模板地址 @ Html.EditorFor(M => m.Address) 可以在模型中添加的int字段2

  [HttpPost] 
      public ActionResult Index(int form) { } 
     // and as for your view, simple change it in order to bind to same name "form" as so: 
      @using (Html.BeginForm()) 
      { <input type="hidden" value="1" name="form" /> 
      //Call your template but if Html.BeginForm lies inside the template you will have to 
      //pass the value somewhere so that it can be send in HTTP Post body 
      } 

形式1和形式之间进行区分如果 或者 甲复杂的做法是一样的 使用javascript获取div的id和修改它的提交功能,并通过int字段1或2

+0

但后来我必须添加一个新的公共int形式{获取;集;}'。有没有简单的方法呢?我没有让你第二次。 –

+0

[HttpPost] 公共的ActionResult指数(INT形式) { } 并作为视图,以结合到相同的名称 “形式” 的,简单的改变它作为这样: @using(Html.BeginForm() ) { } –

+0

感谢您的帮助我只是使用第二个awnserd,它的工作非常感谢。 –

相关问题