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()。