JS+ASP Net Core 从控制器获取数据

Posted

技术标签:

【中文标题】JS+ASP Net Core 从控制器获取数据【英文标题】:JS+ASP Net Core Get data from controller 【发布时间】:2021-11-11 13:19:04 【问题描述】:

问题出现了:如何使用js从asp net core中的控制器获取数据? 我试图正面发送一个帖子请求,但在我看来有一个更优雅的解决方案 同时,我需要在 Select 元素的 html 更改时发生这种情况 I wrote a script that changes the field when the select changes

    function Change_Aud() 
    var x = document.getElementById("Levelid").value;
    document.getElementById("Hardware_La").value = x ;
   

控制器示例

        public async Task<IActionResult> Get_Hardware_Unit(int id)
    
        Level level  = _context.Levels.Where(p => p.Number == id.ToString()).First();
        
        return Content(level.Public_Hardware.ToString());
    

【问题讨论】:

【参考方案1】:

在cshtml中测试页面代码:

@
    ViewData["Title"] = "Home Page";
    int count = 5;

<script src="https://code.jquery.com/jquery-2.2.4.js" integrity="sha256-iT6Q9iMJYuQiMWNd9lDyBUStIq/8PuOW33aOqmvFpqI=" crossorigin="anonymous"></script>

<script>
    function myFunction(selectObject) 
        var value = selectObject.value;
        $("#selectnum").html(value);
        backendfunc(value);
    
    function backendfunc(value) 
        $.ajax(
            url: "/Test/Get_Hardware_Unit",
            type: "GET",
            data:  id: value ,
            success: function (res) 
                $("#convertnum").html(res);
            ,
            error: function (hata, ajaxoptions, throwerror) 
                $("#convertnum").html("convert failed");
            
        );
    
</script>

<div>
    <select name="num" id="num-select" onchange="myFunction(this)">
        <option value="">--Please choose an option--</option>
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
    </select>
</div>
<br />
<br />
<div>
    You select value is : <span id="selectnum"></span>
</div>
<br />
<br />
<div>
    After backend converted, here is : <span id="convertnum"></span>
</div>

我在 Controller 中的功能:

public async Task<IActionResult> Get_Hardware_Unit(int id) 
    string result = string.Empty;
    if (id == 1) 
        result = "①";
    
    if (id == 2)
    
        result = "②";
    
    if (id == 3)
    
        result = "③";
    
    return Content(result);            

测试结果

【讨论】:

以上是关于JS+ASP Net Core 从控制器获取数据的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 ASP.NET Core 从 JWT 令牌获取声明

将数据从 javascript 传递到 asp.net core 2 razor 页面方法

ASP.Net Core - 获取帖子表单的所有数据

不支持的媒体类型 ASP.NET Core Web API

从 ASP.NET Core Web API 中的控制器访问用户身份

用于 jquery CRUD 的 Asp.net core mvc + kendo ui