C# 从httpPost查找id为的数据

C# 从httpPost查找id为的数据,c#,asp.net-core,asp.net-core-mvc,C#,Asp.net Core,Asp.net Core Mvc,我制作了一个HttpPost: [HttpPost] public IActionResult PokemonDetails(int PokemonId) { return PartialView("_PokemonDetails"); } 我想在http中查找Id中的所有数据。 数据在我的控制器中: public IActionResult Index() { #region ListeDesPokemons var pokemonList = new List&l

我制作了一个HttpPost:

[HttpPost]
public IActionResult PokemonDetails(int PokemonId)
{

    return PartialView("_PokemonDetails");
}
我想在http中查找Id中的所有数据。 数据在我的控制器中:

public IActionResult Index()
{
    #region ListeDesPokemons
    var pokemonList = new List<PokemonModel>();
    var Id = 1;
    var Img = 1;

    pokemonList.Add(new PokemonModel() { Id = Id++, Name = "Bulbizarre", UsName = "Bulbasaur(us)", JpName = "フシギダネ(jp)", Type1 = "Plante", Type2 = "Poison", Rate = 45, Image = "https://eternia.fr/public/media/pokedex/artworks/00" + Img++ + ".png" });
    pokemonList.Add(new PokemonModel() { Id = Id++, Name = "Herbizarre", UsName = "Ivysaur(us)", JpName = "フシギソウ(jp)", Type1 = "Plante", Type2 = "Poison", Rate = 45, Image = "https://eternia.fr/public/media/pokedex/artworks/00" + Img++ + ".png" });

    #endregion

    var model = new PokemonViewModel();

    model.Pokemons = pokemonList;

    ViewBag.TotalPokemon1G = pokemonList.Count;

    return View(model);
}
public IActionResult Index()
{
#区域李斯特波克蒙斯
var pokemonList=新列表();
var-Id=1;
var-Img=1;
添加(新的pokemonodel(){Id=Id++,Name=“bulbazarre”,UsName=“Bulbasaur(us)”,JpName=”フシギダネ(jp)”,Type1=“植物”,Type2=“毒药”,速率=45,图像=https://eternia.fr/public/media/pokedex/artworks/00“+Img++.png”});
添加(新的pokemonodel(){Id=Id++,Name=“Herbizarre”,UsName=“Ivysaur(us)”,JpName=”フシギソウ(jp)”,Type1=“植物”,Type2=“毒药”,速率=45,图像=https://eternia.fr/public/media/pokedex/artworks/00“+Img++.png”});
#端区
var model=new PokemonViewModel();
model.Pokemons=pokemonList;
ViewBag.TotalPokemon1G=pokemonList.Count;
返回视图(模型);
}
从id中找到好的数据谢谢。
我还没有实体。

您可以使用LINQ在列表中查询所需的Id

int PokemonId = 2; // input from http post    
var result = pokemonList.FirstOrDefault(p => p.Id == PokemonId);

您可以使用
TempData
跨不同的请求传递数据。用于将数据从当前请求传递到后续请求(表示从一个页面重定向到另一个页面)。它的生命非常短暂,只有在目标视图完全加载后才会停止。但可以通过调用Keep()方法将数据持久化到TempData中

这里是一个简单的工作演示

型号:

public class PokemonModel
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string UsName { get; set; }
    public string JpName { get; set; }
    public string Type1 { get; set; }
    public string Type2 { get; set; }
    public int Rate { get; set; }

    public string Image { get; set; }
}

public class PokemonViewModel
{
    public List<PokemonModel> Pokemons { get; set; }
}
public类PokemonModel
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共字符串UsName{get;set;}
公共字符串JpName{get;set;}
公共字符串类型1{get;set;}
公共字符串类型2{get;set;}
公共整数速率{get;set;}
公共字符串图像{get;set;}
}
公共类PokemonViewModel
{
公共列表口袋妖怪{get;set;}
}
控制器:

public IActionResult PokemonList()
    {
        #region ListeDesPokemons
        var pokemonList = new List<PokemonModel>();
        var Id = 1;
        var Img = 1;

        pokemonList.Add(new PokemonModel() { Id = Id++, Name = "Bulbizarre", UsName = "Bulbasaur(us)", JpName = "フシギダネ(jp)", Type1 = "Plante", Type2 = "Poison", Rate = 45, Image = "https://eternia.fr/public/media/pokedex/artworks/00" + Img++ + ".png" });
        pokemonList.Add(new PokemonModel() { Id = Id++, Name = "Herbizarre", UsName = "Ivysaur(us)", JpName = "フシギソウ(jp)", Type1 = "Plante", Type2 = "Poison", Rate = 45, Image = "https://eternia.fr/public/media/pokedex/artworks/00" + Img++ + ".png" });

        #endregion

        var model = new PokemonViewModel();

        model.Pokemons = pokemonList;
        var json = JsonConvert.SerializeObject(pokemonList);
        TempData["pokemonJson"] = json;

        ViewBag.TotalPokemon1G = pokemonList.Count;

        return View(model);
    }

    [HttpPost]
    public IActionResult PokemonDetails(int PokemonId)
    {
        var pokemonJson = TempData["pokemonJson"].ToString();
        TempData.Keep("pokemonJson");
        var pokemonList = JsonConvert.DeserializeObject<List<PokemonModel>>(pokemonJson);
        var pokemon = pokemonList.SingleOrDefault(p => p.Id == PokemonId);
        return PartialView("_PokemonDetails",pokemon);
    }
public IActionResult PokemonList()
{
#区域李斯特波克蒙斯
var pokemonList=新列表();
var-Id=1;
var-Img=1;
添加(新的pokemonodel(){Id=Id++,Name=“bulbazarre”,UsName=“Bulbasaur(us)”,JpName=”フシギダネ(jp)”,Type1=“植物”,Type2=“毒药”,速率=45,图像=https://eternia.fr/public/media/pokedex/artworks/00“+Img++.png”});
添加(新的pokemonodel(){Id=Id++,Name=“Herbizarre”,UsName=“Ivysaur(us)”,JpName=”フシギソウ(jp)”,Type1=“植物”,Type2=“毒药”,速率=45,图像=https://eternia.fr/public/media/pokedex/artworks/00“+Img++.png”});
#端区
var model=new PokemonViewModel();
model.Pokemons=pokemonList;
var json=JsonConvert.SerializeObject(pokemonList);
TempData[“口袋妖怪”]=json;
ViewBag.TotalPokemon1G=pokemonList.Count;
返回视图(模型);
}
[HttpPost]
公共IActionResult PokemonDetails(int PokemonId)
{
var pokemonJson=TempData[“pokemonJson”].ToString();
TempData.Keep(“口袋妖怪”);
var pokemonList=JsonConvert.DeserializeObject(pokemonJson);
var pokemon=pokemonList.SingleOrDefault(p=>p.Id==PokemonId);
返回PartialView(“_PokemonDetails”,pokemon);
}
视图:

@model WebApplication1.Models.PokemonViewModel
@Html.DisplayNameFor(model=>model.Pokemons[0].Name)
@DisplayNameFor(model=>model.Pokemons[0].JpName)
@DisplayNameFor(model=>model.Pokemons[0].UsName)
@foreach(Model.Pokemons中的var项)
{
@DisplayFor(modelItem=>item.Name)
@DisplayFor(modelItem=>item.JpName)
@DisplayFor(modelItem=>item.UsName)
}
@节脚本{
$(“.btnclick”)。单击(函数(){
var id=$(this.closest(“td”).find(“input”).val();
$.ajax({
类型:“post”,
url:“/Home/PokemonDetails?PokemonId=“+id,
成功:功能(结果){
$(“#口袋妖怪”).html(结果);
}
});
});
}
局部视图

@model WebApplication1.Models.PokemonModel
<div>
<hr />
<dl class="dl-horizontal">
    <dt>
        @Html.DisplayNameFor(model => model.Id)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Id)
    </dd>
    <dt>
        @Html.DisplayNameFor(model => model.Name)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Name)
    </dd>
    <dt>
        @Html.DisplayNameFor(model => model.JpName)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.JpName)
    </dd>
    <dt>
        @Html.DisplayNameFor(model => model.UsName)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.UsName)
    </dd>
    <dt>
        @Html.DisplayNameFor(model => model.Type1)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Type1)
    </dd>
    <dt>
        @Html.DisplayNameFor(model => model.Type2)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Type2)
    </dd>
    <dt>
        @Html.DisplayNameFor(model => model.Rate)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Rate)
    </dd>
</dl>
</div>
@model WebApplication1.Models.PokemonModel

@DisplayNameFor(model=>model.Id) @DisplayFor(model=>model.Id) @DisplayNameFor(model=>model.Name) @DisplayFor(model=>model.Name) @DisplayNameFor(model=>model.JpName) @DisplayFor(model=>model.JpName) @DisplayNameFor(model=>model.UsName) @DisplayFor(model=>model.UsName) @DisplayNameFor(model=>model.Type1) @DisplayFor(model=>model.Type1) @DisplayNameFor(model=>model.Type2) @DisplayFor(model=>model.Type2) @DisplayNameFor(model=>model.Rate) @DisplayFor(model=>model.Rate)
好的,我做了,这是答案

我的控制器:

public IActionResult Index()
{
#区域李斯特波克蒙斯
var pokemonList=新列表();
var-Id=1;
var-Img=1;
添加(新的pokemonodel(){Id=Id++,Name=“bulbazarre”,UsName=“Bulbasaur(us)”,JpName=”フシギダネ(jp)”,Type1=“植物”,Type2=“毒药”,速率=45,图像=https://eternia.fr/public/media/pokedex/artworks/00“+Img++.png”});
添加(新的pokemonodel(){Id=Id++,Name=“Herbizarre”,UsName=“Ivysaur(us)”,JpName=”フシギソウ(jp)”,Type1=“植物”,Type2=“毒药”,速率=45,图像=https://eternia.fr/public/media/pokedex/artworks/00“+Img++.png”});
@model WebApplication1.Models.PokemonModel
<div>
<hr />
<dl class="dl-horizontal">
    <dt>
        @Html.DisplayNameFor(model => model.Id)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Id)
    </dd>
    <dt>
        @Html.DisplayNameFor(model => model.Name)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Name)
    </dd>
    <dt>
        @Html.DisplayNameFor(model => model.JpName)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.JpName)
    </dd>
    <dt>
        @Html.DisplayNameFor(model => model.UsName)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.UsName)
    </dd>
    <dt>
        @Html.DisplayNameFor(model => model.Type1)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Type1)
    </dd>
    <dt>
        @Html.DisplayNameFor(model => model.Type2)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Type2)
    </dd>
    <dt>
        @Html.DisplayNameFor(model => model.Rate)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Rate)
    </dd>
</dl>
</div>
[HttpPost]
        public IActionResult PokemonDetails(int pokemonId)
        { // add break point here