2016-12-01 134 views
0

我有一个简单的asp.net web应用程序项目。其中有一个order.aspx页面显示不同的项目。我设法通过输出 page_load事件来显示这些项目。有服务的asp.net web应用程序

现在我使用JQuery从数据库加载项目详细信息,并显示用户何时单击项目。

这是我使用

$(".item").click(function(){ 
    $.post("Lookup.asp", 
    { 
     Id: $(this).id 
    }, 
    function(data, status){ 
     alert("Data: " + data + "\nStatus: " + status); 
    }); 
}); 

JQuery的现在,我想知道如何和什么是设置的最佳途径后端部分提供数据。目前我在考虑在其页面加载事件上的Lookup.aspx页面将接收来自请求对象的id,我查询db填充数据并通过响应对象将其发回。我不确定这是否是正确的做法。

我还没有设置,因为我想如果我们创建一个单独的页面来做到这一点,那么我将不得不为其他类型的查询创建更多的页面(我将有不同的查询,如检查项目的状态在分贝)。

我一直在想这个方法的另一个问题是,会有一些页面只是服务于数据,我们不想向公众展示它们。如果有人能够获得他们可以访问的页面的名称,那我们就不需要了。

而我正在使用实体框架,它在任何方面都很重要。

+0

您是否正在使用的WebForms,网页或MVC? –

+0

我没有确定使用MVC。我认为这是WebForms,但我不确定最后的区别。 – Novice

+0

您的订单是否已登录? –

回答

0

对于Web服务部分。最好和最简单的方法是WEB API。只需编写一个控制器方法,它就成为一个返回json或xml的Web服务。

Using Web API with ASP.NET Web Forms

现在谈谈第二部分是棘手的。 如果您的用户尚未登录,则该方法必须公开才能有人访问。所以无论是通过Ajax,只要有人的网址,并必须能够访问该方法。

解决这个问题的方法是加密解密您的产品ID。

或者在web api上使用身份验证。

https://www.asp.net/web-api/overview/security/authentication-and-authorization-in-aspnet-web-api

+0

用户不需要登录,实际上他们没有任何账户,直到他们结帐购物车中的物品。我认为在这种情况下,加密解密方法会更合适。但怎么做呢? – Novice

+0

这是为mvc但逻辑是相同的 http://stackoverflow.com/questions/14773148/how-to-encrypt-the-query-string-id-in-mvc4-actionlink –

相关问题