我希望将所有网址映射到/ Home / User或/ Home / About或/ Home / Register或...到c#页面如下:
例如User.cs页面是这样的:
public class User
{
public string run(UrlParameter id){
return "Hello World";
}
}
我希望当用户发送/ Home / User请求时...用户类的Call Run功能并向用户显示返回值。我怎么能在ASP MVC中做到这一点?
我可以在RouteConfig中使用更改路线吗?现在我的MVC路线是:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
当我调用某个url程序时,在视图文件夹中运行一个asp页面作为c#.net中MVC项目的默认值。
更多解释:
我的客户端和服务器端程序之间的协议是 JSON 。我想要在客户端询问某些内容时返回字符串JSON并且为此我不需要使用asp页面来呈现html,我只需要调用一些将JSON返回给客户端的函数。
我怎么能用MVC做到这一点?
答案 0 :(得分:1)
我假设你的问题有两部分。
第一部分:将网址映射到网页。从某种意义上来说,这是 路由是什么。它将网址映射到操作,可以是页面,也可以是图片之类的资源,也可以是JSON数据之类的响应。请注意,它并不总是一个页面,通常是 url映射到资源。
阅读网址路径文档here:
routes.MapRoute(
name: "Default",
url: "/Page1",
defaults: new { controller = "Home", action = "Page1",
id = UrlParameter.Optional }
);
在上面的示例中:fakedomain.com/Page1将在Page1
类上运行HomeController
方法,如果您没有添加任何代码,则会搜索{视图文件夹中的{1}}或Page1.aspx
。
我建议在这一点上阅读有关REST的内容。我建议这篇文章:How I explained REST to my wife
第二部分:如何返回JSON数据。那么你使用WebApi。请参阅文档here.
WebApi允许您编写基于请求返回数据的控制器。因此,如果您的客户端发送一个Ajax请求,其接受头设置为application / json,则WebApi将返回JSON。
它也遵循典型的asp.net-MVC控制器,路由和操作系统。
因此,要返回代表产品的JSON数据,您将拥有一个如下所示的ProductController:
Page1.cshtml
使用asp.net-mvc4和WebApi的默认路由设置,上述控制器将响应以下URL
public class ProductsController : ApiController
{
Product[] products = new Product[]
{
new Product { Id = 1, Name = "Tomato Soup",
Category = "Groceries", Price = 1 },
new Product { Id = 2, Name = "Yo-yo",
Category = "Toys", Price = 3.75M },
new Product { Id = 3, Name = "Hammer",
Category = "Hardware", Price = 16.99M }
};
public IEnumerable<Product> GetAllProducts()
{
return products;
}
public Product GetProductById(int id)
{
var product = products.FirstOrDefault((p) => p.Id == id);
if (product == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
return product;
}
}
我强烈建议从Web Platform installer然后follow this tutorial获取所有先决条件,如visual studio和asp.net-mvc。