簡體   English   中英

如何訪問 ActionResult 中的對象<object>或來自 CreatedAtAction() 的 routeValues 在 .NET Core 3.0 中返回?

[英]How to access object in ActionResult<object> or routeValues from CreatedAtAction() return in .NET Core 3.0?

我有一個帶有以下代碼的控制器方法:

public async Task<ActionResult<Project>> Create(Project project)
{
    project.CreatedAt = DateTime.Now;
    project.UpdatedAt = DateTime.Now;
    project.CreatedAtSystemUserId = new Guid();
    project.UpdatedAtSystemUserId = new Guid();

    Context.Projects.Add(project);
    await Context.SaveChangesAsync();

    return CreatedAtAction("GetProject", new { id = project.ProjectId }, project);
}

我從 Blazor 組件調用Create()方法:

protected async void BtnSaveProject_Click()
{
    var response = await ProjectService.Create(Project);
    var project = response.Result.Value;

    // NagivationManagerHelper.NavigateTo(string.Format("/projects/{0}", project.ProjectId.ToString()));
}

當我嘗試引用response.Result.Value InteliSense 告訴我 ActionResult 沒有 Value 的定義,但是當我通過調試器運行此代碼並檢查response我可以看到Result具有Value 為什么我不能在代碼中引用它?

CreateAtAction() 返回CreatedAtActionResult類型。 您可以通過以下方式直接訪問其值

var response = await ProjectService.Create(Project);
var project = response.Value;

從 ActionResult 中獲取值<object>在 ASP.Net Core API 方法中<div id="text_translate"><p>我嘗試從 ASP.NET 核心 API 方法中的ActionResult&lt;object&gt;獲取值。</p><p> API 有不同的 controller。 我嘗試使用 controller A 中的 controller B 中的方法返回結果值。 我從 controller B 得到一個ActionResult object。我可以在ResultObject中使用調試器查看該值,但是如何訪問其中的結果值?</p><pre> public ActionResult&lt;object&gt; getSourceRowCounter(string sourcePath) //Method from Controller A { var result = ControllerB.GetValue($"{sourcePath}.{rowCounterVariableName}"); var result2 = result.Value; //null var result3 = result.Result; //typ: {Microsoft.AspNetCore.Mvc.OkObjectResult} &lt;-see Value=4 in it with Debugger //var result4 = result3.Value; //Error?. //var result5 = result3;Content? //Error.? //var result6 = result3????;?; //How can i get the Value = 4? return Ok(result); //should only return value 4 and not the whole object }</pre> <p><img src="https://i.stack.imgur.com/4Lppi.jpg" alt="在此處輸入圖像描述"></p></div></object>

[英]Get a Value from ActionResult<object> in a ASP.Net Core API Method

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 為什么使用 CreatedAtAction 在 WebAPI POST 方法中返回 object? CreatedAtAction 不尊重在 controller in.Net Core 3.0 中設置的路由模板 ASP.NET Core 5 - CreatedAtAction 在返回復雜對象時不返回任何數據 ASP.NET Core 6 - 如何通過 CreatedAtAction 返回 Angular Live Development Server 的端口 為什么 ASP.NET Core 操作可以返回 `ActionResult <IEnumerable<ZapResult> &gt;` 返回任何對象的 `BadRequest()`? ASP.NET Core 5 Web API,POST 返回 CreatedAtAction 錯誤 從 ActionResult 中獲取值<object>在 ASP.Net Core API 方法中<div id="text_translate"><p>我嘗試從 ASP.NET 核心 API 方法中的ActionResult&lt;object&gt;獲取值。</p><p> API 有不同的 controller。 我嘗試使用 controller A 中的 controller B 中的方法返回結果值。 我從 controller B 得到一個ActionResult object。我可以在ResultObject中使用調試器查看該值,但是如何訪問其中的結果值?</p><pre> public ActionResult&lt;object&gt; getSourceRowCounter(string sourcePath) //Method from Controller A { var result = ControllerB.GetValue($"{sourcePath}.{rowCounterVariableName}"); var result2 = result.Value; //null var result3 = result.Result; //typ: {Microsoft.AspNetCore.Mvc.OkObjectResult} &lt;-see Value=4 in it with Debugger //var result4 = result3.Value; //Error?. //var result5 = result3;Content? //Error.? //var result6 = result3????;?; //How can i get the Value = 4? return Ok(result); //should only return value 4 and not the whole object }</pre> <p><img src="https://i.stack.imgur.com/4Lppi.jpg" alt="在此處輸入圖像描述"></p></div></object> 從 .Net 核心 API 返回復雜對象 如何在ASP.NET Core 2中更改CreatedAtAction的路由格式? .Net Core 3.0 對象類型設置值
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM