在asp.net核心mvc中点击页面加载或提交按钮后,保持选项中选择的值

cygmwpex  于 5个月前  发布在  .NET
关注(0)|答案(1)|浏览(87)

我把@标志获取模型属性的智能,但ASP.NET核心MVC是不允许我把@标志,它只是红色的,一旦我把@标志在下面张贴的剃刀视图代码选择标记。
在这里:

@(item.DhoobiId==ViewBag.Customer_Id ? "selected='selected'" : "")

<select class="kt-selectpicker" data-live-search="true" title="Code Numbers" ng-model="item.Suit_Id" data-style="btn-brand" style="width:100%">
    @foreach (var item in dbContext.Customers.ToList())
    {
        <option value="@item.Customer_Id" @(item.DhoobiId==ViewBag.Customer_Id ? "selected='selected'" : "")>@item.Customer_Code_No</option>
    }
</select>

字符串
我试着用@符号来获取模型属性。就像我们在ASP.NET MVC中所做的一样。在ASP.NET Core MVC中不允许这样。

<select class="kt-selectpicker" data-live-search="true" title="Code Numbers" ng-model="item.Suit_Id" data-style="btn-brand" style="width:100%">
    @foreach (var item in dbContext.Customers.ToList())
    {
        <option value="@item.Customer_Id" @(item.DhoobiId==ViewBag.Customer_Id ? "selected='selected'" : "")>@item.Customer_Code_No</option>
    }
</select>


我希望在单击提交按钮后选择选项值。该值必须保留。

qnzebej0

qnzebej01#

我想用我自己的dtos之类的东西来展示如何在view.cshtml中管理和设置选项控制。
基于以下代码,它应该获取所有语言,然后设置用户选择的语言。
1:用于获取语言的DTO:

public class GetLanguagesServiceDto
{
    public int Id { get; set; }
    public string Name { get; set; } // NameEnglish + NameNative => NameEnglish (NameNative)
}

字符串
2:用于获取语言列表作为列表的DTO

public class ResultGetLanguagesServiceDto
{
    public List<GetLanguagesServiceDto> getLanguagesServiceDto { get; set; }
}


3:用于设置多个DTO的模型(我假设在一个视图.cshtml页面中将使用DTO样式的多个模型)

public class ModelGetInformation
{
    public ... { get; set; }
    public ... { get; set; }
    public ResultGetLanguagesServiceDto resultGetLanguagesServiceDto { get; set; }
}


4:通过控制器初始化模型(我使用了FACADE模式,如果你不喜欢使用FACADE PATTERN结构,我们忽略它)

[HttpGet]
    public IActionResult Index()
    {
        //// Get languages List ...        
        return View(new ModelGetInformation
        {
            resultGetLanguagesServiceDto = _languagesFacade.GetLanguagesService.Execute(),
        });
    }


5:在最高视点页面定义模型及其命名空间:

@using Endpoint.Site.Models.Users.GetInformation;
@model ModelGetInformation;


第六章:主要代码!下面的代码向您展示如何首先列出所有语言,然后设置用户已经选择的默认值。

<select
                        class="form-select" id="selectLanguage">
                    <option selected>Choose...</option>
                    @{
                        foreach (var lang in Model.resultGetLanguagesServiceDto.getLanguagesServiceDto)
                        {
                            <option value="@lang.Id" selected="@(lang.Id == Model.getUsersInformationServiceDto.LanguageId)">"@lang.Name"</option>
                        }
                    }
                </select>


一些提示:
1.你必须使用foreach,因为要获取动态列表,
1.标签“selected”指示首先选择哪个项目
1.“Model.getUsersInformationServiceDto. WebageId”将获取您的客户已保存在其配置文件中的“语言ID”

相关问题