2016-07-30 71 views
0

我是初学者JSON。我的困惑是为什么我们要用JSON而不是从后端获取并显示数据,而使用Java Script/JQueryMVCMVC C#.Net with JSON

我希望你的回答能让我摆脱困惑。

回答

1

并不是所有人都追求JSON。但其中有很多可怕的。在mvc中有两种呈现视图的方式,一种是模型绑定,另一种是使用API​​并通过Javascript呈现元素。前者涉及所有服务器资源的使用,而后者则是通过服务器执行数据库操作。元素的渲染在客户机上完成。因此它可以提供更好的性能并最​​大限度地减少服务器的使用但是这种改进的性能需要一定的成本。

像谷歌这样的搜索引擎阻止了第二种方法,因为他们难以呈现完整的视图。此外,仅Ajax网站不会提供良好的用户体验。随着技术堆栈和服务器性能的提高,性能不再是关键问题。

其他因素是安全性。如果您正在处理api数据以呈现元素,您的安全性可能会受到影响,因为恶意用户可以更改代码并查看不适合他们的内容。

但是,如果您不关心搜索引擎优化并仔细实施您的Ajax,那么第二种方式也无妨。

+0

非常感谢Rachit你的回答使我受到了很多的支持。 – user2738864

+0

我的荣幸。如果它解决了你的查询,接受它作为答案。为此,请在答案旁边勾上灰色刻度线。 –

+0

亲爱的Rachit,一个简单的问题是有没有办法在MVC中使用AJAX updatepanel来使用我们的回发,或者我们必须使用JSON? – user2738864

0

JSON在建模字符串中的对象方面很出色。这使您可以轻松地表示强类型对象并通过POST数据通过HTTP传递它们。

让我们说在C#中你有一个作业控制器。

它有一个叫做

void Create(Job job) 
{ 
    db.Jobs.Add(job); 
    db.SaveChanges(); 
} 

方法和工作POCO类看起来是这样的。

public class Job 
{ 
    public int Id {get;set;} 
    public string Name {get;set;} 
    public bool IsActive {get;set;} 

} 

你可以很容易地写入这个或任何JSON对象的值。 在JavaScript中,你可以设置的值作为变量

var job = { 
    id: 23, 
    name: 'Programming Job', 
    isActive: true 
}; 

可以将此转换为字符串,预备一个ajax后这样。

var postData = JSON.stringify(job); 

当您发布到您的控制器时,即使使用不同的外壳,JSON也会自动映射到您的C#Job类。

允许执行

void创建(工作任务)

+0

非常感谢Proximo。它是一个很好的例子。 – user2738864

0

序列化是更快,更简单到后端和前端之间traval。

后端只是处理从数据库中获取数据。客户然后处理这些数据的显示。

说你打电话给朋友帮忙做一个蛋糕。你有成分,但不知道如何去做。 你是否愿意让你的朋友请你到他的位置来帮助你做蛋糕,或者你是否愿意让他给你指示,然后通过电话自己制作蛋糕?

我不确定我的例子是否完全准确:p

+0

嗨亲爱的,谢谢你的回复,但我对你的回答很困惑。我的困惑是从控制器获取数据的更好方法是使用JSON还是使用模型绑定而不是JSON,为什么? – user2738864

+0

@ user2738864哦,对不起。那么我不熟练呢。我正在使用的这两个创业公司,我不知道哪个更好。我认为这取决于您的项目如何构建,以及您的需求。 – 2016-07-30 09:27:07

+0

好吧亲爱的不用担心:) – user2738864