Asp.Net Core - 在文本区域中显示字符串列表值?

Posted

技术标签:

【中文标题】Asp.Net Core - 在文本区域中显示字符串列表值?【英文标题】:Asp.Net Core - Display string list values in textarea? 【发布时间】:2022-01-11 09:38:05 【问题描述】:

我有一个列表,其值取自数据库,我希望这些值中的每一个在textarea中显示在一行中...

控制器:

 public async Task<IActionResult> AddOrEditPoll(Guid Id)
                
        var polloptionList = await _admin.GetQuestionsListByPollId(Id);
        PollViewModel model = new PollViewModel();    
        model.AnswerList = new List<string>();
        foreach (var item in polloptionList)
        
            model.AnswerList.Add(item.Answer);
        ;
        return View(model);
    

查看:

<div class="form-group">
        <label class="control-label">Answer</label>
        <textarea asp-for="AnswerList" class="form-control"></textarea>
    </div>

ّ我希望它显示如下:

如果你有好的解决方案,可以指导我吗?

【问题讨论】:

您确定要使用 textarea 而不是单选按钮或复选框或下拉选择吗?如果是,你想如何显示它们?单个文本框中的所有值组合在一起?还是每个都在单独的文本框中? @SyedMohammadFahimAbrar 我只是希望它显示在 textarea 中,因为我想编辑它们 您希望它们都在同一个文本区域中吗?还是每个项目的文本区域? @SyedMohammadFahimAbrar 适合所有人的文本区域 您可以先将所有答案映射到一个字符串中,然后将该字符串绑定到剃刀中的文本区域。但是您必须自己从模型字符串中提取字符串列表。我认为每个答案的 textarea 应该在 codesmel 的情况下更好地工作。 【参考方案1】:

您可以尝试将asp-for替换为idname,asp-for将textarea的值设置为AnswerList,然后将AnswerList转换为string。这是一个演示:

行动:

public IActionResult AddOrEditPoll() 
            PollViewModel model = new PollViewModel();
            model.AnswerList = new List<string>  "answer1", "answer2" , "answer3" ;
            return View(model);
        

查看:

 <div class="form-group">
            <label class="control-label">Answer</label>
            <textarea name="AnswerList" class="form-control" style="text-align:right">@string.Join("\n ", Model.AnswerList)</textarea>
        </div>

结果:

【讨论】:

它没有显示任何内容,我希望任何值都在一行中 你的 polloptionList 有值吗? 已显示,但我希望一行中的任何值都可以? any value in a line 是什么意思?不是每个项目? 那么你想用空空间分割答案吗?如果是这样,我已将答案更改为用“ ”分割答案。

以上是关于Asp.Net Core - 在文本区域中显示字符串列表值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在文本区域中显示数组内容?

在文本区域中突出显示简单的 Javascript?

如何在文本区域中显示文本的结尾

让用户选择在文本区域中显示多少行 [HTML] [JAVASCRIPT?]

HTML:有没有办法在文本区域中显示图像?

在文本区域中捕获换行符(换行符、换行符)字符