C# 如何解决Razor Pages错误;CS0103名称';Json';在当前上下文中不存在;?
我使用的是Razor页面(不是MVC),在返回语句中不断出现上述错误。有一个类似的问题与MVC模型有关,但答案是将类更改为“Controller”。当我尝试这样做的时候,页面相关的东西就会断开。有什么建议吗C# 如何解决Razor Pages错误;CS0103名称';Json';在当前上下文中不存在;?,c#,asp.net,json,razor-pages,C#,Asp.net,Json,Razor Pages,我使用的是Razor页面(不是MVC),在返回语句中不断出现上述错误。有一个类似的问题与MVC模型有关,但答案是将类更改为“Controller”。当我尝试这样做的时候,页面相关的东西就会断开。有什么建议吗 public class VehicleInfoPageModel : PageModel { public SelectList ModelNameSL { get; set; } public JsonResult PopulateModelDropDownLi
public class VehicleInfoPageModel : PageModel
{
public SelectList ModelNameSL { get; set; }
public JsonResult PopulateModelDropDownList(StockBook.Models.StockBookContext _context,
int selectedMakeID,
object selectedModelID = null)
{
var ModelIDsQuery = from m in _context.VehicleModel
orderby m.ModelID // Sort by ID.
where m.MakeID == selectedMakeID
select m;
ModelNameSL = new SelectList(ModelIDsQuery.AsNoTracking(),
"ModelID", "ModelName", selectedModelID);
return Json(ModelNameSL);
}
您尝试使用从名称空间派生的
Json()
方法,它们都是不同的名称空间。您应该使用Microsoft.AspNetCore.Mvc.JsonResult的构造函数来创建JSON字符串:
public JsonResult PopulateModelDropDownList(StockBook.Models.StockBookContext _context, int selectedMakeID, object selectedModelID = null)
{
var ModelIDsQuery = from m in _context.VehicleModel
orderby m.ModelID // Sort by ID.
where m.MakeID == selectedMakeID
select m;
ModelNameSL = new SelectList(ModelIDsQuery.AsNoTracking(),
"ModelID", "ModelName", selectedModelID);
// return JSON string
return new JsonResult(ModelNameSL);
}
参考资料:返回的JSON用于MVC/WebAPI应用程序,而不是Razor Pages应用程序,因此它没有
JSON
helper函数。只需使用返回新的JsonResult(ModelNameSL)代码>谢谢你的解释!这就解决了问题。