第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創(chuàng)建表單并綁定到?jīng)]有數(shù)據(jù)庫的類

創(chuàng)建表單并綁定到?jīng)]有數(shù)據(jù)庫的類

C#
翻閱古今 2023-09-24 16:18:25
我是學習 MVC 的新手,確實需要一些幫助,因為我正在嘗試從 ASP.NET Web 表單繼續(xù)學習。我有一個用于所有數(shù)據(jù)庫事務的自定義 Web API,該 API 非常高效且可靠。我已經(jīng)在 .NET Core 中重新編碼了它。我的問題是,我發(fā)現(xiàn)大多數(shù)與 MVC 相關的模型綁定示例都是由實體框架示例組成的。我正在尋求幫助,展示如何使用 get() post(form) 操作將 ViewModel 鏈接到控制器。我需要了解如何綁定到單選按鈕列表等......我正在使用下面的類,它刪除了數(shù)據(jù)庫連接以簡化答案/建議。public class BuildSearch{    //Bootstrap date entry    public DateTime StartDate { get; set; }    //Bootstrap date entry    public DateTime EndDate { get; set; }    //Need this bound to a radio button list    public List<GeoArea> GeoAreas { get; set; }    public BuildSearch()        {            GeoAreas = new List<GeoArea>();           // StartDate = DateTime.Parse(DateTime.Now.AddDays(-31).ToShortDateString());           //  EndDate = DateTime.Parse(DateTime.Now.ToShortDateString());            GeoAreas.Add(new GeoArea { GeoAreaItem = "Region", Id = 0 });            GeoAreas.Add(new GeoArea { GeoAreaItem = "Manager1", Id = 1 });            GeoAreas.Add(new GeoArea { GeoAreaItem = "Manager2", Id = 2 });     }  }public class GeoArea{     public int Id { get; set; }     public string GeoAreaItem { get; set; }}我正在嘗試創(chuàng)建一個視圖,它將顯示這些數(shù)據(jù),然后允許我回發(fā)用戶編輯。我故意讓示例保持簡單,因為一旦我弄清楚如何回發(fā),我就可以將更新后的數(shù)據(jù)傳遞給 Web API 來完成我需要完成的工作。只是想弄清楚我如何綁定到這種類型的類,這讓我感到沮喪。
查看完整描述

2 回答

?
阿波羅的戰(zhàn)車

TA貢獻1862條經(jīng)驗 獲得超6個贊

對于單選按鈕,我將向您的 BuildSearch 類添加一個名為 GeoAreaId 的屬性。單選按鈕選擇將在回發(fā)時模型綁定到此屬性。因此,您的 BuildSearch 類變?yōu)?/p>


public class BuildSearch

{

    //Bootstrap date entry

    public DateTime StartDate { get; set; }

    //Bootstrap date entry

    public DateTime EndDate { get; set; }


    public int GeoAreaId { get; set; } //added field



    //Need this bound to a radio button list

    public List<GeoArea> GeoAreas { get; set; }

    public BuildSearch()

    {

        GeoAreas = new List<GeoArea>();

        //   StartDate = DateTime.Parse(DateTime.Now.AddDays(-31).ToShortDateString());

        //  EndDate = DateTime.Parse(DateTime.Now.ToShortDateString());


        GeoAreas.Add(new GeoArea { GeoAreaItem = "Region", Id = 0 });

        GeoAreas.Add(new GeoArea { GeoAreaItem = "Manager1", Id = 1 });

        GeoAreas.Add(new GeoArea { GeoAreaItem = "Manager2", Id = 2 });

    }

    public class GeoArea

    {

        public int Id { get; set; }

        public string GeoAreaItem { get; set; }

    }

}

你的控制器中的 get 方法看起來像這樣


    public IActionResult Search()

    {

        var buildSearch = new BuildSearch();

        return View(buildSearch);

    }

你的視圖需要看起來像這樣


@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

@model  BuildSearch


<form asp-controller="Home" asp-action="Search" method="post">   


    <label asp-for="StartDate">Start date</label>

    <input asp-for="StartDate" />

    <label asp-for="EndDate">End date</label>

    <input asp-for="EndDate" />


    <fieldset>

        <legend>

            GeoArea

        </legend>

        @foreach (var item in Model.GeoAreas)

        {

            <input type="radio" name="GeoAreaId" value="@item.Id" />

            @item.GeoAreaItem

        }

    </fieldset>


    <input type="submit" />

</form>

對于單選按鈕,請注意 name 屬性如何與我添加到 BuildSearch 類中的新屬性 GeoAreaId 相匹配。這對于模型綁定的工作非常重要。


然后你的控制器中的 post 方法將需要如下所示


    [HttpPost]

    [ValidateAntiForgeryToken]

    public IActionResult Search(BuildSearch buildSearch)

    {

        //...

    }

要查看發(fā)生了什么,請在此方法中設置一個斷點。運行代碼,在表單中輸入一些值,然后單擊提交。當代碼停止在 buildSearch 上時,您將看到模型綁定已起作用。屬性 StartDate、EndDate 和 GeoAreaId 將包含表單中所需的值。


查看完整回答
反對 回復 2023-09-24
?
元芳怎么了

TA貢獻1798條經(jīng)驗 獲得超7個贊

將數(shù)據(jù)放入視圖模型中,您將執(zhí)行類似的操作

public async Task<IActionResult> Index()

{? ??

? ? var movies = await _context.Movies.ToList();

? ? if (movies == null)

? ? {

? ? ? ? return NotFound();

? ? }

? ? return View(movies);

}

然后,您將需要該表格來對您的操作進行后續(xù)操作,例如


[HttpPost]

[ValidateAntiForgeryToken]

public async Task<IActionResult> Edit(int id, [Bind("ID,Title,ReleaseDate,Genre,Price")] Movie movie)

{? ??

? ? if (ModelState.IsValid)

? ? {

? ? ? ? ? ? //post to api here


? ? ? ? return RedirectToAction(nameof(Index));

? ? }

? ? return View(movie);

}

您必須將模型或視圖模型傳遞到 html 類中,如下所示


@model MvcMovie.Models.Movie


@{

? ? ViewData["Title"] = "Edit";

}


<h1>Edit</h1>


<h4>Movie</h4> etc etc


查看完整回答
反對 回復 2023-09-24
  • 2 回答
  • 0 關注
  • 152 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號