【问题标题】:EDIT NEW Pass data from the controller to the view using HttpPost编辑 NEW 使用 HttpPost 将数据从控制器传递到视图
【发布时间】:2020-05-22 13:01:38
【问题描述】:
  • 我必须将控制器中的方法从 HttpGet 转换为 HttpPost。

  • 该方法返回一个视图给我。

  • 我之前已经通过ViewBag向这个方法发送了值。

  • 目前,当我使用 ViewBag 时,会抛出错误:

    加载资源失败:服务器响应状态为 500(内部服务器错误)

  • 只有在我使用 ViewBag 时才会弹出错误

控制者:

[HttpPost]
public ActionResult PartialTabelaEcp(string json)
{ 
    var nr_days= 31;
    ViewBag.days= nr_days;
    return PartialView("_TableEve");
}

.cshtml

//for example
@for (int nr_rows = 0; nr_rows < ViewBag.days; nr_rows++)
{
    var nr_names = nr_rows + 1;
}

我的预期是什么?

关于如何使用 HttpPost 将数据从控制器发送到视图的帮助/文章

编辑

例如: 型号:

 public partial class userDaty_Model
    {
        public int liczbaDniM { get; set; }

        public int numerMiesiacaM { get; set; }

        public int numerRokuM { get; set; }
    }

控制器:

liczbaDni = 1;
numerMiesiaca = 2;
numerRoku= 5;

 userDaty_Model userDaty = new userDaty_Model();
            userDaty.liczbaDniM = liczbaDni;
            userDaty.numerRokuM = numerMiesiaca;
            userDaty.numerMiesiacaM = numerRoku;
 return PartialView("_TableEve", userDaty);

现在我有 for (razor) 以及如何将控制器中分配的值放入其中? 查看

   @for (int nr_rows = 0; nr_rows < @aandWhatWriteHere ; nr_rows++)

我试过了:

DayValue : @Html.HiddenFor(item => item.userDaty_Model.liczbaDniM);   // does it works?

@for (int nr_rows = 0; nr_rows <  DayValue; nr_rows++)  // it does not work...

【问题讨论】:

  • 问题一、是MVC还是Core?它是什么? 2)您之前发送的代码在哪里?您可以通过Html.Beginform&lt;form&gt; 或ajax 发送。

标签: c# asp.net .net asp.net-mvc asp.net-core


【解决方案1】:

您可以更轻松地创建一个视图模型并将数据放入其中并>使用填充的视图模型对象返回视图,这可能看起来像这样

视图模型

   public class PartialTableEcpModel
   {
      public List<string> Days {get; set;}
      //And so on

  }

控制器

   public ActionResult PartialTabelaEcp(string json)
   { 
       PartialTableEcpModel tableModel = new PartialTableEcpModel();
       tableModel.Days = new List<string>() {"Day1", "Day2", Day3};
       var nr_days= 31;
       ViewBag.days= nr_days;
       return PartialView("_TableEve", tableModel);
   }

剃刀视图

   @model PartialTableEcpModel 
   @foreach(var day in Model.Days)
   {
    <p>@day</p>//or whatever
   }

所以又是一个 Get 请求

用于编辑

您必须将 RazorView.cshtml 顶部的 @model 设置为您的模型,然后您的 Model 属性就是您在控制器中推送的模型

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2020-06-08
    • 2021-06-14
    • 2016-07-08
    相关资源
    最近更新 更多