【问题标题】:Creating a constructor for retrieving data in Json Format创建用于以 Json 格式检索数据的构造函数
【发布时间】:2014-11-13 05:44:28
【问题描述】:

我正在努力使这更有条理,但由于某种原因,我无法理解在没有控制器准备数据的情况下如何实现它。

我一直认为最好让模型为我准备它。

我怎样才能做到这一点?

课程负责人:

public class CoursesController : Controller
{
    private readonly CourseVmContext db = new CourseVmContext();

    public ActionResult Index()
    {
        var Data = db.CourseVms.ToList().AsEnumerable();
        var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        string JsonData = serializer.Serialize(Data);

        return View(JsonData);
    }
}

课程视图模型:

    public class CourseVm
{
    [Key]
    public int CourseId { get; set; }
    public string Course { get; set; }
    public string Name { get; set; }
    public string Instructor { get; set; }
}

public class CourseVmContext : DbContext
{
    public CourseVmContext()
    {
        this.Database.Connection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
    }
    public DbSet<CourseVm> CourseVms { get; set; }  
}

干杯!

【问题讨论】:

  • bradyOutput 的值你在做什么?您似乎没有在任何地方使用它。
  • 你想创建一个返回json的控制器吗?
  • 对不起,斯蒂芬,我以为我把名字改成了那个……现在是正确的。约瑟夫,是的,这正是我的计划。但我希望我可以让 ViewModel 将模型提供给 Json 中的控制器。
  • 通常您将模型返回到视图,以便您可以渲染其属性return View(model),或者您返回模型return Json(model); 的JsonResult,它可能在ajax 回调中使用。你打算如何使用它?
  • 好吧,你这么说是有道理的。因为稍后在这个项目中知道我可能需要获取一组特定的数据等等......但现在我在我的实际视图中使用 AngularJs。这是我实现它的链接。 pastebin.com/jkUU6Jkh

标签: c# asp.net .net asp.net-mvc asp.net-mvc-4


【解决方案1】:

根据您在评论中发布的 sn-p:

registrationModule.factory("bootstrappedCourses", function() {
            return {
                courses: @Model
            };
        });

似乎您正在绕过 angularjs 的 ajax 功能。

无论如何,如果您决定继续这种方式,您所需要的只是一个string 类型的模型(您在控制器中所做的)

在你看来,你需要调用angular.fromJson()方法

registrationModule.factory("bootstrappedCourses", function() {
            return {
                courses: angular.fromJson("@Model")
            };
        });

我强烈建议您使用替代方法,例如 JsonResult 控制器和 Angular 的 $http 模块 - read this tutorial

【讨论】:

  • 比如实际使用Ajax调用?? xD
  • 真的很感谢你向我指出这一点......说实话,我太着迷了,我忘记了那个功能...... xD 谢谢。
猜你喜欢
  • 2022-01-21
  • 2017-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-26
相关资源
最近更新 更多