首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将视图(PartialView)中的新元素添加到@Model并将其发送给控制器

将视图(PartialView)中的新元素添加到@Model并将其发送给控制器
EN

Stack Overflow用户
提问于 2022-10-18 11:11:36
回答 1查看 57关注 0票数 0

我正在使用ASP.NET Core5.0,我想了解如何正确地从视图添加新元素到@Model并将其发送给控制器

我有Request.cs (这是我发送给View的模型,它包含带有DB元素的NotMapped List )

在视图中,我使用foreach循环使用列表显示PartialView。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
foreach(var appeal in appeals)
{
     @await Html.PartialAsync("/Views/Data/Modal/Partial/_FoivAppealPartial.cshtml", appeal);     
}

使用add按钮,我可以添加新的PartialView和新的FoivAppeals类。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<button class="appealaddbutton" id="addfoivappeal"><i class="fas fa-plus"></i></button>
$("#addfoivappeal").click(function () {
    $.ajax({
        type: "POST",
        url: '@Url.Action("DisplayNewFoivApeal","Data")',
        success: function (html) { 
           $("#foivappeals").append(html);  
         }
    });
  return false;
});

这是PartialView for FoivAppeals

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@model FoivAppeals
@inject DataBaseContext db

<div class="container">
    <div class="row" >
        <div class="col-5">
            <label for="inp" class="inp">
                <input class="fields"  type="date" id="ffdt" asp-for="@Model.Datetime" name="@datename"/>
                    <span class="label">Дата</span>
                    <span class="focus-bg"></span>
            </label> 
        </div>
        <div class="col-5">                
            <label for="inp" class="inp">
                <input class="fields" asp-for="@Model.Number" placeholder="&nbsp;" required name="@numbername"/>
                <span class="label">Номер</span>
                <span class="focus-bg"></span>
            </label>  
        </div>
        <div class="col-2 appealdeletediv">
            <a style="cursor: pointer;" class="deleteFoivRow" 
             onclick="$(this).parent().parent().remove();">
                <i class="fas fa-minus-circle appealdeletebutton"></i>
            </a>
        </div>
    </div>
</div>

使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(this).parent().parent().remove();

我可以删除不必要的元素

在进行了所有操作之后,我需要将当前显示在View中的新数据传输给Controller。

例如,我从DB获得了一个FoivAppeals列表。

在视图中,我再添加一个。

因此,当我单击表单中的So按钮时,我希望在Controller而不是1中看到列表中的2个元素。

所以问题是..。

有没有一种通用的方法来做到这一点?

请求模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class RequestModel
{
   public int Id {get;set;}
   public string IncomeNumber {get;set;}

   [NotMapped]
   public List<AppealModel> Appeals {get;set;}
}

AppealModel

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class AppealModel
{
   public int Id {get;set;}
   public string Number {get;set;}
   public string Date {get;set;}
   public RequestModel {get;set;}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-25 10:11:13

这就是答案。我不知道它是如何工作的,但它是如何工作的。

https://www.findandsolve.com/articles/add-more-example-razor-page-using-aspnet-core-with-code-example-step-by-step

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74116314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文