C# .net问题:打算全部用ashx写个后端项目,前端用html+js+ajax与后端交互,请问应在VS中建什么项目中?

以后考虑再写个安卓app做移动端还是与这同一个后端进行交互,
请问这样全部用ashx实现后端接口合适吗?或者用C# .net的其他技术,请给点思路清晰的意见,拜谢!
C# .net接触的不是太多,多指教

ASXH是一般的网站应用程序,主要用来处理小型的,不需要回发的请求,比如发送个图片给客户端啊,这种。他不是一个项目,而是一个项。只要是ASP.NET项目中,都可以右键添加一个asxh项,用于url处理请求。
优点是很简单,缺点是很老很过时,至于以后和其他客户端交互更是难,因为asxh项是很难维护成一个系统的服务的。

主流的处理方式是使用WebService, WebService可以用于处理后台需要的业务逻辑、数据交互并且依托IIS来发布出去。一般主流的.NET网站,大部分都使用WebService或者WebApi来进行服务发布,然后前端使用MVC进行开发(你使用html+js+ajax其实都是视图UI,而前端可能还需要一些其他的东西来进行网站和服务的交互,比如MVC的控制器,或者webform的后台代码,纯js和服务交互在.NET中并不好用)。
因为WebService使用XML来进行数据交互,基本上所有的客户端都可以调用其服务,包括安卓和IOS。
WebService学起来很简单, 就是将服务端需要的所有逻辑、数据代码封装好,然后发布即可。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-20

根据你的情况分析,你的项目应该是分布式项目系统,我建议你使用WCF做为与前端交互,而不是一般处理程序。优点适用于大型分布式架构系统,跨平台,跨架构调用,有助于构建集群分布式Web项目和负载均衡。

追问

WCF我最近学一下,现在还没有这方面的经验,谢谢

追答

接口交互这块用WCF,WebService都可以。
.net Web用ASP.NET MVC设计模式。微软的MVC本身也提供Ajax与控制器进行交互。

第2个回答  2016-10-20
<%@ WebHandler Language="C#" Class="Home" %>

using System;
using System.Web;
using System.Net;

public class Home : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
object type = context.Request.Params["type"];
string jsonpCallback = context.Request.Params["jsonpCallback"];
if (type == null||type.ToString()=="")
{
context.Response.Write("type is null");
}else {
switch (type.ToString()) {
case "login":
//.....
break;
}
}
}
public bool IsReusable {
get {
return false;
}
}

}

jsonp跨域请求
$.ajax({
type: "get",
url: "Ashx/login/login.ashx",
dataType: 'jsonp',
jsonp: "jsonpCallback",
data: params,
success: function (result) {
//正常返回数据的处理
}, error: function (XMLHttpRequest, textStatus, errorThrown) {
//请求错误时处理
}
});

非跨域请求:
$.get("Ashx/login/login.ashx",{"参数":"如果木有可以为空"},function(result){
//正常请求返回的数据(无法扑捉到error信息)
});