Kombassere Ответов: 1

Ядро страницы Asp.net бритва: как сделать выберите значение из списка элемент списка?


Дорогие все,

Ваша помощь будет признательна за эту проблему, с которой я столкнулся asp.net основная страница бритвы.
у меня есть страница razor с полем выбора списка. Когда элемент выбран, я хочу получить выбранное значение в качестве параметра функции поиска. Функция find должна возвращать некоторые значения из базы данных, чтобы автоматически заполнить некоторые поля на странице.
Моя проблема заключается в том, как отправить выбранное значение из формы в модель страницы, с одной стороны, а с другой стороны, как отправить обратно найденные значения в некоторые поля формы.

Спасибо за вашу помощь

Что я уже пробовал:

Форма со списком выбора
form method="post">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <input type="hidden" asp-for="Programmation.IdProgr" />
            <div class="form-group">
                <label asp-for="PrgBareme.IdBareme" class="control-label"></label>
                <select asp-for="SelectedIdBareme" class="form-control" asp-items="Model.BaremeList">
                    <option value="">-- Selectionner un article --</option>
                </select>
                <span asp-validation-for="PrgBareme.IdBareme" class="text-danger" />
            </div>

            <div class="form-group">
                <label asp-for="PrgBareme.PrgPrix" class="control-label"></label>
                <input asp-for="PrgBareme.PrgPrix" class="form-control">
            </div>
            <div class="form-group">
                <label asp-for="PrgBareme.PrgRation1" class="control-label"></label>
                <input asp-for="PrgBareme.PrgRation1" class="form-control">
            </div>
            <div class="form-group">
                <label asp-for="PrgBareme.PrgQte1" class="control-label"></label>
                <input asp-for="PrgBareme.PrgQte1" class="form-control">
            </div>
            <div class="form-group">
                <label asp-for="PrgBareme.PrgQte2" class="control-label"></label>
                <input asp-for="PrgBareme.PrgQte2" class="form-control">
            </div>
            <div class="form-group">
                <label asp-for="PrgBareme.NbrePlat1" class="control-label"></label>
                <input asp-for="PrgBareme.NbrePlat1" class="form-control">
            </div>
            <div class="form-group">
                <label asp-for="PrgBareme.PrgQte3" class="control-label"></label>
                <input asp-for="PrgBareme.PrgQte3" class="form-control">
            </div>
            <div class="form-group">
                <label asp-for="PrgBareme.NbrePlat2" class="control-label"></label>
                <input asp-for="PrgBareme.NbrePlat2" class="form-control">
            </div>
            <div class="form-group">
                <label asp-for="PrgBareme.NbreCrtTomate" class="control-label"></label>
                <input asp-for="PrgBareme.NbreCrtTomate" class="form-control">
            </div>
            <div class="form-group">
                <label asp-for="PrgBareme.NbreBidHuile" class="control-label"></label>
                <input asp-for="PrgBareme.NbreBidHuile" class="form-control">
            </div>
            <div class="form-group">
                <label asp-for="PrgBareme.NbreCartSardine" class="control-label"></label>
                <input asp-for="PrgBareme.NbreCartSardine" class="form-control">
            </div>
            <div class="form-group">
                <label asp-for="PrgBareme.PrgUnite" class="control-label"></label>
                <input asp-for="PrgBareme.PrgUnite" class="form-control">
            </div>
            <div class="form-group">
                <label asp-for="PrgBareme.PrgReversement" class="control-label"></label>
                <input asp-for="PrgBareme.PrgReversement" class="form-control">
            </div>
            <!-- <div class="form-group">
                <label asp-for="PrgBareme.PrgEtat" class="control-label"></label>
                <select asp-for="PrgBareme.ProjectStateCode" class="form-control"
                        asp-items="ViewBag.ProjectStateCode"></select>
            </div>-->
            <div class="form-group">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </form>


Сценарий модели страницы
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Kibsa.Data.Manager_Service;
using Microsoft.EntityFrameworkCore;
using Microsoft.AspNetCore.Mvc.Rendering;

namespace Kibsa.Pages.Programmations
{
    public class Programmation_BaremeCreateModel : PageModel
    {
        private readonly db_kibsaContext _context;

        public Programmation_BaremeCreateModel(db_kibsaContext context)
        {
            _context = context;
        } 

        [BindProperty]
        public Programmation Programmation { get; set; }
        [BindProperty]
        public int SelectedIdBareme { get; set; }
        public List<SelectListItem> BaremeList;

        public async Task<IActionResult> OnGet(int? id)
        {
            if (id == null)
            {
                return NotFound();
            }
            Programmation = await _context.Programmation.Include(c => c.PrgBareme).FirstOrDefaultAsync(c => c.IdProgr == id);

            if (Programmation == null)
            {
                return NotFound();
            }
            BaremeList = _context.Bareme.Select(s => new SelectListItem
            {
                Value = s.IdBareme.ToString(),
                Text = s.BarLibelle
            }).ToList();

            // Get the bareme values of the selected value from database
            List<Bareme> lstbareme = new List<Bareme>();
            lstbareme = (from Bareme in _context.Bareme where Bareme.IdBareme == SelectedIdBareme select Bareme).ToList();


            return Page();
        } 

        [BindProperty]
        public PrgBareme PrgBareme { get; set; }

        public async Task<IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return Page();
            }
            PrgBareme.IdProgr = PrgBareme.IdProgr;

            _context.PrgBareme.Add(PrgBareme);
            await _context.SaveChangesAsync();
            return RedirectToPage("./Programmation_Bareme", new { id =Programmation.IdProgr });
        } 
    }
}

Gerry Schmitz

Мне кажется, ты просишь слишком многого.

1 Ответов

Рейтинг:
1

Ronnie Faircloth

Вы смогли придумать ответ на этот вопрос? Похоже, у меня та же проблема. Мое значение SelectListItem всегда возвращается как 0, которого даже нет в опциях.