I have a GET method that returns json data from the web api. I have created a corresponding view, but its showing the json data instead of showing data on the view page. My code is as below:
[HttpGet]
public List<Project.Entity.ViewModels.PassCatalog.LBFrontendIPConfig> ListofLBFronendIPConfig(string resourceGroupName, string loadBalancerName)
{
try
{
var token = HttpContext.Session.GetString("Token");
var tenantid = HttpContext.Session.GetString("TenantId");
var sessionId = HttpContext.Session.GetString("SessionId");
if (!string.IsNullOrEmpty(token) || !string.IsNullOrEmpty(tenantid))
{
var path = $"/api/PaasCatalog/GetLBFrontendIPConfigList?resourceGroupName=" + resourceGroupName + "&loadBalancerName=" + loadBalancerName;
var response = _httpClient.SendRequestWithBearerTokenAsync(HttpMethod.Get, path, null, token, tenantid, _cancellationToken, sessionId).Result;
if (!response.IsSuccessStatusCode)
return null;
var result = response.Content.ReadAsStringAsync().Result;
if (result == null)
return null;
var jsontemplates = JsonConvert.DeserializeObject<List<Project.Entity.ViewModels.PassCatalog.LBFrontendIPConfig>>(result);
return jsontemplates;
}
else
{
RedirectToAction("SignOut", "Session");
}
}
catch (Exception ex)
{
_errorLogger.LogMessage(LogLevelInfo.Error, ex);
return null;
}
return null;
}
This is the way I have used Url.Action to call the View
<i onclick="location.href='@Url.Action("ListofLBFronendIPConfig", "PaasCatalog", new {LoadBalancerName = item.Name, resourceGroupName = item.RGName})'" class="fa fa-expand @Model.ActionClass.Edit" style="color:green;font-size: 18px;" data-toggle="tooltip" data-placement="bottom" title="Scale Up/Down" data-original-title="Tooltip on bottom"></i>
what am I missing? Please help me. Thank you.
Your MVC actions should have a return value of ActionResult (or Task if you are using async) in the signature. so you menthod should be defined as ...
Then you need to change your return statements with the action method to use the provided View Result helper methods found on the MVC Controller class. For Example:
I changed all of your return statements. You would need a cshtml view named ListofLBFronendIPConfig.cshtml that knows how to make use of the json object you bound to it's model. Hope this helps.