从httpPost查找ID为的数据 [英] Find data with id from httpPost

查看:60
本文介绍了从httpPost查找ID为的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我发了一个HttpPost:

I made a HttpPost :

[HttpPost]
public IActionResult PokemonDetails(int PokemonId)
{

    return PartialView("_PokemonDetails");
}

我想从http中的ID中查找所有数据. 数据在我的控制器中:

I want to find all the data from the Id in the http. the datas are in my controller :

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);
}

从id中找到好的数据,谢谢. 我还没有实体.

find good data from id thank you. I do not have entity yet.

推荐答案

您可以使用TempData在不同的请求之间传递数据.

You could use TempData to pass data across different requests .TempData is used to pass data from current request to subsequent request (means redirecting from one page to another). It’s life is very short and lies only till the target view is fully loaded. But you can persist data in TempData by calling Keep() method.

这是一个简单的工作演示

Here is a simple working demo

型号:

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 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);
    }

查看:

@model WebApplication1.Models.PokemonViewModel


<table class="table">
  <thead>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Pokemons[0].Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Pokemons[0].JpName)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Pokemons[0].UsName)
        </th>

        <th></th>
    </tr>
  </thead>
  <tbody>
    @foreach (var item in Model.Pokemons)
    {
        <tr>
            <td>

                @Html.DisplayFor(modelItem => item.Name)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.JpName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.UsName)
            </td>
            <td>
                <input hidden  asp-for="@item.Id" />
                <a href="javascript:;" class="btnclick">PokemonDetails</a>
            </td>
        </tr>
    }
  </tbody>
</table>

<div id="pokemon"></div>
@section Scripts{ 
<script type="text/javascript">
    $(".btnclick").click(function () {
        var id = $(this).closest("td").find("input").val();
        $.ajax({
            type: "post",
            url: "/Home/PokemonDetails?PokemonId=" + id,
            success: function (result) {
                $("#pokemon").html(result);
            }
        });
    });

</script>  
}

PartialView

PartialView

@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查找ID为的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆