【问题标题】:How to retain the model value on multi post MVC 4.0如何在多后 MVC 4.0 上保留模型值
【发布时间】:2014-05-09 13:21:17
【问题描述】:

在一个视图中,我有 3 个这样的提交按钮

<input type="submit" id="btnUpload" name="button" value="Upload" />
<input type="submit" id="btnDownload" name="button" value="Download" /> 
<input type="submit" id="btnSave" name="button" value="Save" />

这些按钮在开始表单内

在控制器中

 [HttpPost]
 [ValidateAntiForgeryToken]
 public ActionResult BulkRenewalProcess(BusinessViewModel model, List<HttpPostedFileBase> BulkFile, string button)
 {
        if (button == "Upload")
        {
           model.PublicId = lstId;
           return View(model);
        }
        else if(button == "Download")
        {
           // After my business logic I am returning same view.
           return View(model);
        }
        else
        {

        }
 }

当我点击保存按钮时,这是第二次点击并发布相同的模型。我没有得到我在上传按钮单击时为其分配值的 model.PublicId。

有人请帮我如何获得价值

【问题讨论】:

  • 您必须有一个 hidden 输入标签,其中包含该值,以便第二个表单帖子将其发送到您的控制器。
  • 但是我们不能在隐藏字段中存储列表,请告诉我如何在隐藏字段中存储列表
  • 您似乎只想存储 Id 而不是列表?
  • 这是一个id列表
  • 这取决于您的 html 的更多内容,分享更多内容,或者可能是一个小提琴?我将提供一些选项作为答案,希望能解决您的具体情况

标签: asp.net-mvc asp.net-mvc-4


【解决方案1】:

如果有多行,并且您在没有完整页面加载的情况下通过 ajax 发布对它们的更改,则可以使用多个表单,每个表单都具有它们正在保存的项目的隐藏值。

另一种选择是在页面表单级别设置一个隐藏字段,点击提交 javascript 会拦截并设置隐藏字段值。 这是一个拦截提交点击以做更多工作的示例: How to use jQuery to onsubmit and check if the value is 2 - 5 characters?

封装所有项目的表单的另一个选项是生成每个提交链接(假设您的提交按钮是每行而不是列表级别),并使用类似 &lt;input type="Submit" value="1" title="Id is 1"&gt; 的 id 进行生成

【讨论】:

    【解决方案2】:

    我已经参加了会话并将列表存储在会话中解决了我的问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      • 2017-02-11
      • 2013-11-09
      • 2010-12-13
      • 1970-01-01
      相关资源
      最近更新 更多