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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

C#
翻閱古今 2023-09-24 16:18:25
我是學(xué)習(xí) MVC 的新手,確實(shí)需要一些幫助,因?yàn)槲艺趪L試從 ASP.NET Web 表單繼續(xù)學(xué)習(xí)。我有一個(gè)用于所有數(shù)據(jù)庫事務(wù)的自定義 Web API,該 API 非常高效且可靠。我已經(jīng)在 .NET Core 中重新編碼了它。我的問題是,我發(fā)現(xiàn)大多數(shù)與 MVC 相關(guān)的模型綁定示例都是由實(shí)體框架示例組成的。我正在尋求幫助,展示如何使用 get() post(form) 操作將 ViewModel 鏈接到控制器。我需要了解如何綁定到單選按鈕列表等......我正在使用下面的類,它刪除了數(shù)據(jù)庫連接以簡(jiǎn)化答案/建議。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)建一個(gè)視圖,它將顯示這些數(shù)據(jù),然后允許我回發(fā)用戶編輯。我故意讓示例保持簡(jiǎn)單,因?yàn)橐坏┪遗宄绾位匕l(fā),我就可以將更新后的數(shù)據(jù)傳遞給 Web API 來完成我需要完成的工作。只是想弄清楚我如何綁定到這種類型的類,這讓我感到沮喪。
查看完整描述

2 回答

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

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

對(duì)于單選按鈕,我將向您的 BuildSearch 類添加一個(gè)名為 GeoAreaId 的屬性。單選按鈕選擇將在回發(fā)時(shí)模型綁定到此屬性。因此,您的 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>

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


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


    [HttpPost]

    [ValidateAntiForgeryToken]

    public IActionResult Search(BuildSearch buildSearch)

    {

        //...

    }

要查看發(fā)生了什么,請(qǐng)?jiān)诖朔椒ㄖ性O(shè)置一個(gè)斷點(diǎn)。運(yùn)行代碼,在表單中輸入一些值,然后單擊提交。當(dāng)代碼停止在 buildSearch 上時(shí),您將看到模型綁定已起作用。屬性 StartDate、EndDate 和 GeoAreaId 將包含表單中所需的值。


查看完整回答
反對(duì) 回復(fù) 2023-09-24
?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊

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

public async Task<IActionResult> Index()

{? ??

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

? ? if (movies == null)

? ? {

? ? ? ? return NotFound();

? ? }

? ? return View(movies);

}

然后,您將需要該表格來對(duì)您的操作進(jìn)行后續(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


查看完整回答
反對(duì) 回復(fù) 2023-09-24
  • 2 回答
  • 0 關(guān)注
  • 164 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)