Web services 字典需要类型为';Projectname.Sp name';
我正在做一个示例,要求存储过程结果必须显示在视图中(通过选择下拉列表中的详细信息创建强类型视图)。从服务中,我得到的结果是这种格式Web services 字典需要类型为';Projectname.Sp name';,web-services,asp.net-mvc-4,razor,Web Services,Asp.net Mvc 4,Razor,我正在做一个示例,要求存储过程结果必须显示在视图中(通过选择下拉列表中的详细信息创建强类型视图)。从服务中,我得到的结果是这种格式 [{“studentID”:1,“studentName”:“Suja”,“StudentDepartment”:“Economics”}] 但我有一个错误 传入词典的模型项的类型为“System.Collections.Generic.List`1[StudentForm.sp_join_details_Result]”,但此词典需要类型为“StudentForm
[{“studentID”:1,“studentName”:“Suja”,“StudentDepartment”:“Economics”}]
但我有一个错误
传入词典的模型项的类型为“System.Collections.Generic.List`1[StudentForm.sp_join_details_Result]”,但此词典需要类型为“StudentForm.sp_join_details_Result”的模型项
Homecontroller.cs
public ActionResult Details(string name)
{
studentEntities data = new studentEntities();
List<sp_join_details_Result> model = null;
var client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:99991/");
var response = client.GetAsync(string.Format("api/Details?name={0}", name)).Result;
var responseBody = response.Content.ReadAsStringAsync();
responseBody.Wait();
var productString = Newtonsoft.Json.JsonConvert.DeserializeObject<List<sp_join_details_Result>>(responseBody.Result);
return View(productString);
}
public ActionResult详细信息(字符串名称)
{
学生实体数据=新学生实体();
列表模型=null;
var client=新的HttpClient();
client.BaseAddress=新Uri(“http://localhost:99991/");
var response=client.GetAsync(string.Format(“api/Details?name={0}”,name)).Result;
var responseBody=response.Content.ReadAsStringAsync();
responseBody.Wait();
var productString=Newtonsoft.Json.JsonConvert.DeserializeObject(responseBy.Result);
返回视图(productString);
}
Details.cshtml
@model EmployAppraisalForm.sp_join_details_Result
@{
ViewBag.Title = "Details";
}
<h2>Details</h2>
<fieldset>
<legend>sp_join_details_Result</legend>
<div class="display-label">
@Html.DisplayNameFor(model => model.studentID)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.studentID)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.studentName)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.studentName)
</div>
</fieldset>
@model EmployAppraisalForm.sp\u join\u details\u结果
@{
ViewBag.Title=“详细信息”;
}
细节
sp\u连接\u详细信息\u结果
@DisplayNameFor(model=>model.studentID)
@DisplayFor(model=>model.studentID)
@DisplayNameFor(model=>model.studentName)
@DisplayFor(model=>model.studentName)
我知道我必须将服务的响应转换为可以在视图中显示的结果,我应该转换为该结果?请在这方面帮助我….您的详细信息()
方法正在将列表
返回到一个需要单个sp\u join\u Details\u result
对象的视图
如果要显示单个对象,请将return语句更改为
return View(productString.FirstOrDefault());
或者,如果要显示对象集合,请将视图更改为
@model List<sp_join_details_Result>
@foreach(var item in Model)
{
....
@型号列表
@foreach(模型中的var项目)
{
....
您的Details()
方法正在将List
返回到一个视图,该视图需要一个sp\u join\u Details\u Result
对象
如果要显示单个对象,请将return语句更改为
return View(productString.FirstOrDefault());
或者,如果要显示对象集合,请将视图更改为
@model List<sp_join_details_Result>
@foreach(var item in Model)
{
....
@型号列表
@foreach(模型中的var项目)
{
....
该消息是不言自明的-您将sp\u join\u details\u Result
的集合返回给一个需要单个sp\u join\u details\u Result
对象的视图。使用.FirstOrDefault()
返回单个对象或将视图更改为@model List
并循环浏览项目以显示它们。@Stephen Muecke感谢它的有效性,我添加了.FirstorDefault()对于我的结果。消息是不言自明的-您将sp\u join\u details\u result
的集合返回到一个需要单个sp\u join\u details\u result
对象的视图。使用.FirstOrDefault()
若要返回单个对象或将视图更改为@model List
并循环浏览项目以显示它们。@Stephen Muecke感谢它的有效性,我在结果中添加了.FirstorDefault()。