Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 传递空模型值后,如何正确删除或修复它?_C#_Asp.net Core_.net Core_Asp.net Core Mvc - Fatal编程技术网

C# 传递空模型值后,如何正确删除或修复它?

C# 传递空模型值后,如何正确删除或修复它?,c#,asp.net-core,.net-core,asp.net-core-mvc,C#,Asp.net Core,.net Core,Asp.net Core Mvc,提交按钮时的样本输出 我不知道为什么我有空值,这是我的示例表单。其中的细节来自局部视图 部分视图代码 @model SimplyAccounting.Models.TransactionViewModels.JournalDetailsViewModel @using (Html.BeginCollectionItem("JournalDetailsViewModel")) { <tr class="checkD

提交按钮时的样本输出

我不知道为什么我有空值,这是我的示例表单。其中的细节来自局部视图

部分视图代码

        @model SimplyAccounting.Models.TransactionViewModels.JournalDetailsViewModel
        @using (Html.BeginCollectionItem("JournalDetailsViewModel"))
        {
            <tr class="checkDetails" id="@Model.Guid">
                <td>

        //code here
    <td>
<tr class="DocumentDetails" id="@Model.Guid">
                <div class="btn-group btn-group-toggle">
                    <button type="button" class="btn btn-sm btn-info btnModal" guid="@Model.Guid"><i class="far fa-file"></i></button>
                    <button type="button" class="btn btn-sm btn-danger" id="delete" name="delete" value="delete" onclick="javascript: deleteBook(document.getElementById('@Model.Guid'))"><i class="far fa-trash-alt"></i></button>
                </div>
            </td>
</tr>
        }
控制器:

public IActionResult CreateJournalDetails(JournalDetailsViewModel vmodel)
    {
        vmodel = new JournalDetailsViewModel();
        vmodel.Gla_List = GlaList();
        vmodel.Function_List = FunctionList();
        vmodel.Expense_List = ExpenseList();
        vmodel.Bank_List = BankList();
        vmodel.Location_List = LocationList();
        vmodel.Branch_List = BranchList();
        vmodel.Asset_List = AssetList();
        vmodel.Item_List = ItemList();

        return PartialView("_JournalDetails", vmodel);
    }

现在,当您是服务器端的时候,您可以从视图模型中将空项删除到新列表中,并将新列表添加到您的上下文中

你应该总是假设文章中的数据可能是错误的/被操纵的,你应该尽可能地验证你在文章中得到的数据。因此,即使您在前端修复了它,您也应该确保返回的数据是有效的

也就是说,这应该可以解决您的问题

var newViewModel = new List<JournalDetails>();
foreach (var item in newViewModel.JournalDetailsViewModel)
{
    if (item != null)
    {
        ...
        newViewModel.Add(item);
    }
}

var dtails = _mapper.Map<List<JournalDetails>>(newViewModel.JournalDetailsViewModel);
_context.AddRange(newViewModel);

...
var newViewModel=newlist();
foreach(newViewModel.JournalDetailsViewModel中的变量项)
{
如果(项!=null)
{
...
newViewModel.Add(项);
}
}
var dtails=_mapper.Map(newViewModel.JournalDetailsViewModel);
_AddRange(newViewModel);
...

现在,当您在服务器端时,您可以将视图模型中的空项删除到新列表中,并将新列表添加到上下文中

你应该总是假设文章中的数据可能是错误的/被操纵的,你应该尽可能地验证你在文章中得到的数据。因此,即使您在前端修复了它,您也应该确保返回的数据是有效的

也就是说,这应该可以解决您的问题

var newViewModel = new List<JournalDetails>();
foreach (var item in newViewModel.JournalDetailsViewModel)
{
    if (item != null)
    {
        ...
        newViewModel.Add(item);
    }
}

var dtails = _mapper.Map<List<JournalDetails>>(newViewModel.JournalDetailsViewModel);
_context.AddRange(newViewModel);

...
var newViewModel=newlist();
foreach(newViewModel.JournalDetailsViewModel中的变量项)
{
如果(项!=null)
{
...
newViewModel.Add(项);
}
}
var dtails=_mapper.Map(newViewModel.JournalDetailsViewModel);
_AddRange(newViewModel);
...

这是因为您要映射到一个包含空值的列表吗?检查空值会遇到麻烦,但不使用该对象映射到空值,因为映射到的列表中包含空值?你会很麻烦地检查空值,但不使用该对象进行映射感谢这解决了问题,但我也想知道如何修复客户端当我修复此类问题时,我使用Fiddler并查看从浏览器发布的实际值,通常会有一些您忘记删除的剩余内容客户端。您可以查看此问题中的答案,以帮助您为asp.net设置Fiddler。谢谢这解决了问题,但我也想知道如何修复客户端当我修复此类问题时,我使用Fiddler并查看从浏览器发布的实际值,通常会有一些您已经忘记的剩余内容在客户端删除。您可以查看此问题的答案,以帮助您为asp.net设置Fiddler
var newViewModel = new List<JournalDetails>();
foreach (var item in newViewModel.JournalDetailsViewModel)
{
    if (item != null)
    {
        ...
        newViewModel.Add(item);
    }
}

var dtails = _mapper.Map<List<JournalDetails>>(newViewModel.JournalDetailsViewModel);
_context.AddRange(newViewModel);

...