.net核心MVC中查看数据未纳入模型 [英] view data not come into model in .net core mvc

查看:43
本文介绍了.net核心MVC中查看数据未纳入模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

进入第二部分视图的数据不会进入模型,但是会进入第一部分视图数据.我想将两个部分视图数据都放入模型中.请指导我该如何做,因为我是.net core的新手.

The data entered into second partial view not come into model but first partial view data come. I want both partial view data into model. Please guide me how to do it as i am new in .net core.

控制器

        [HttpPost]
        public ActionResult NewIndividualSearchCharacteristic(ABC.Core.Models.DTOs.Characteristic characteristics)
        {
            return PartialView("IndividualSearchCharacterisiticPartial", characteristics ?? new ABC.Core.Models.DTOs.Characteristic());
        }

第一部分视图具有第二部分视图

First partial view having second partial view

@model ABC.Core.Models.DTOs.Individual.IndividualSearch

@using (Html.BeginCollectionItem("IndividualSearches"))
{<div id="Characteristics" class="mb-3">
            @if (Model?.Characteristics != null)
            {
                for (var i = 0; i < Model?.Characteristics.Count; i++)
                {
                    <div class="form-group">
                        @{ Html.RenderPartial("IndividualSearchCharacterisiticPartial", Model.Characteristics[i], new ViewDataDictionary()); }
                    </div>
                }
            }

IndividualSearch类别

IndividualSearch Class

 namespace ABC.Core.Models.DTOs.Individual
{
public List<Characteristic> Characteristics { get; set; } = new List<Characteristic>();

型号

namespace ABC.Core.Models.DTOs
{
    public class Characteristic
    {
        public string Name { get; set; }
        public string Value { get; set; }
    }
}

第二部分

@model ABC.Core.Models.DTOs.Characteristic

@using (Html.BeginCollectionItem("Characteristics"))
{
    <div id="characteristic-details" class="card">
        <div class="form-horizontal">
            <div class="card-block">
                <div class="container">
                    <div class="row">
                        <div class="col-*-*">
                            @Html.LabelFor(m => m.Name, "Name", new { @class = "form-control-label" })
                        </div>
                        <div class="col">
                            @Html.TextBoxFor(m => m.Name, null, new { @class = "form-control" })
                        </div>

服务等级

 individualSearch.Characteristics = requestTestData.individualCharacteristics;

推荐答案

要通过两个相关的局部视图显示数据,您应确认哪个是首先显示的第一个局部视图.

To show data by two related partial view, you should confirm which is the first partial to show first.

根据您的代码,称为 IndividualSearchCharacterisiticPartial IndividualSearchPartial 部分视图,为此,您应首先在NewIndividualSearchCharacteristic操作中调用IndividualSearchPartial部分视图,该操作将称为IndividualSearchCharacterisiticPartial自动局部视图.

According to your code, the IndividualSearchPartial partial view called IndividualSearchCharacterisiticPartial partial view, therefor, you should call IndividualSearchPartial partial view first in NewIndividualSearchCharacteristic action which will called IndividualSearchCharacterisiticPartial partial view automatically.

NewIndividualSearchCharacteristic 操作中,您应该返回带有 IndividualSearch 模型数据的 IndividualSearchCharacterisiticPartial 部分视图.

And in NewIndividualSearchCharacteristic action, you should return IndividualSearchCharacterisiticPartial partial view with IndividualSearch model data.

以下是基于您的代码的示例:

Here is an example based on your code:

测试视图:

@{
    ViewData["Title"] = "Test";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h1>Test</h1>

<input id="Button1" type="button" value="button" />
<div id="aa"></div>

@section Scripts{
    <script>
        $("#Button1").click(function () {
            $.ajax({
                url: "/home/NewIndividualSearchCharacteristic",
                type: "post",
                success: function (data) {
                    $("#aa").html(data);
                }
            })

        })
    </script>

}

NewIndividualSearchCharacteristic操作:

NewIndividualSearchCharacteristic action:

 [HttpPost]
        public ActionResult NewIndividualSearchCharacteristic()
        {
             
            IndividualSearch individualSearch = new IndividualSearch()
            {
                Characteristics = new List<Characteristic>() {
             new Characteristic(){  Name="aa", Value="gfd"},
             new Characteristic(){  Name="bb", Value="dsa"},
             new Characteristic(){  Name="cc", Value="eqw"},
            }
            };
            return PartialView("IndividualSearchPartial", individualSearch);
        }

IndividualSearchPartial部分视图:

IndividualSearchPartial partial view:

@model IndividualSearch

@using (Html.BeginForm("IndividualSearches"))
{
    <div id="Characteristics" class="mb-3">
        @if (Model?.Characteristics != null)
        {
            for (var i = 0; i < Model?.Characteristics.Count; i++)
            {
        <div class="form-group">
         
            @await Html.PartialAsync("IndividualSearchCharacterisiticPartial", Model.Characteristics[i])
        </div>
            }
        }
    </div>
}

IndividualSearchCharacterisiticPartial部分视图:

IndividualSearchCharacterisiticPartial partial view:

@model Characteristic

@using (Html.BeginForm("Characteristics"))
{
    <div id="characteristic-details" class="card">
        <div class="form-horizontal">
            <div class="card-block">
                <div class="container">
                    <div class="row">
                        <div class="col-*-*">
                            @Html.LabelFor(m => m.Name, "Name", new { @class = "form-control-label" })
                        </div>
                        <div class="col">
                            @Html.TextBoxFor(m => m.Name, null, new { @class = "form-control" })
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
}

这是测试代码:

这篇关于.net核心MVC中查看数据未纳入模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆