快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡新京是真的吗_龟发之家论坛



MVC代表: 模型-视图-节制器 。MVC是一个架构优越并且易于测试和易于掩护的开拓模式。基于MVC模式的利用法度榜样包孕:

· Models: 表示该利用法度榜样的数据并应用验证逻辑来强制实施营业规则的数据类。

· Views: 利用法度榜样动态天生 HTML所应用的模板文件。

· Controllers: 处置惩罚浏览器的哀求,取得数据模型,然后指定要相应浏览器哀求的视图模板。

本系列教程,我们将覆盖所有这些观点,并奉告您若何在ASP.NET MVC 5中应用它们来构建利用法度榜样。

首先,让我们创建一个节制器类。在办理规划资本治理器中,用鼠标右键单击节制器文件夹(Controllers ),然后选择“添加节制器“。

在添加Scaffold对话框,单击MVC5节制器 - 空,然后单击“添加”。

命名新的节制器为“HelloWorldController”,并澳门新葡新京是真的吗单击“ 添加“。

请留意,在办理规划资本治理器中会创建一个名为HelloWorldController.cs的新文件和一个新的文件夹Views\HelloWorld。该文件会被IDE默认打开。

用下面的代码调换该文件中的内容。

using System.Web;

using System.Web.Mvc;namespace MvcMovie.Controllers

{public class HelloWorldController : Controller

{//

// GET: /HelloWorld/public string Index()

{return "This is my default action...";

}//

// GET: /HelloWorld/Welcome/public string澳门新葡新京是真的吗 Welcome()

{return "This is the Welcome action method...";

}}

}

在这个例子中节制器措施将返回一个字符串的HTML。本节制器被命名HelloWorldController代码中的第一种措施被命名为Index。让我们从浏览器中调用它。运行利用法度榜样(按F5或CTRL + F5)。在浏览器的地址栏中输入路径“HelloWorld“。(例如,鄙人面的示例中: http://localhost:1234/HelloWorld)页面在浏览器中的体现如下面的截图。在上面的措施中,代码直接返回了一个字符串。你奉告系统只返回一些HTML,系统确凿这样做了!

ASP.NET MVC会调用不合的节制器类(和其内部不合的操作措施)这取决于传入URL。所应用的ASP.NET MVC的默认URL路由逻辑应用这样的款式来鉴定哪些代码以便调用:

/[Controller]/[ActionName]/[Parameters]

你也可在App_Start/RouteConfig.cs 文件内经由过程设置设置设备摆设摆设URL路由解析规则:

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段的,默觉得“Home”的节制器和“Index”的操作措施,在上面的代码中的defaults部分指定的:

第一部分的URL确定哪个节制器类会被履行。是以 /HelloWorld映射到HelloWorldController节制器类。

第二部分的URL确定要履行节制器类中的那个操作措施。是以 /HelloWorld/Index,会使得HelloWorldController节制器类的Index 措施被履行。请留意,我们只必要浏览 /HelloWorld路径,默认环境下会调用Index措施。假如没有明确的指定操作措施,Index措施会默认的被节制器类调用。

第三部分的URL段(Parameters参数)是路由数据。在本教程中,稍后我们将看澳门新葡新京是真的吗到路由数据。

浏览http://localhost:xxxx/HelloWorld/Welcome。Welcome措施会被运行并返回字符串:"This is the Welcome action method...”。 默认的MVC映射为/[Controller]/[ActionName]/[Parameters] 对付这个澳门新葡新京是真的吗URL,节制器类是HelloWorld,操作措施是Welcome,您还没有应用过URL的[Parameters] 部分。

让我们轻细改动一下这个例子,以便可以应用URL通报一些参数信息给节制器类(例如, /HelloWorld/Welcome?name=Scott&numtimes=4)。改变您的Welcome 措施来包孕两个参数,如下所示。必要留意的是,示例代码应用了C#说话的可选参数功能,numTimes参数在不传值时,默认值为1。

public string Welcome(string name, int numTimes = 1) {

return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes);

}

安然留意事变: 上面的代码应用了 HttpServerUtility.HtmlEncode 来保护利用从malacious输入的(也便是JavaScript).有关具体信息,请参阅How to: Protect Against Script Exploits in a Web Application by Applying HTML Encoding to Strings.

运行您的利用法度榜样并浏览此URL(http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4)。你可以对参数name 和numtimes 考试测验不合的值。 ASP.NET MVC model binding system 会自动将地址栏中URL里的 query string映射到您措施中的参数。

上面的例子,没有用到URL段参数的部分( Parameters)。 经由过程query strings通报name 和 numTimes的参数.

用下面的代码调换“Welcome”的措施:

public string Welcome(string name, int ID = 1)

{

return HttpUtility.HtmlEncode("Hello " + name + ", ID: " + ID);}

运行利用法度榜样并输入以下网址URL: http://localhost:xxx/HelloWorld/Welcome/3?name=Rick

此次URL第三部分的参数匹配了参数ID。

经由过程查看下面的RegisterRoutes路由规则函数:

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 });

}

在ASP.NET MVC利用法度榜样,经由过程参数通报路由数据是为更范例的利用(犹如上面用query string通报 ID参数)。您还可以增添一条路由来通报name 和numtimes ,在路由数据在URL中的参数。在App_Start\RouteConfig.csfile文件中,添加“Hello”的的路由:

public class RouteConfig{

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 });

routes.MapRoute(name: "Hello",

url: "{controller}/{action}/{name}/{id}");

}}

运用利用法度榜样,在浏览器输入:/localhost:XXX/HelloWorld/Welcome/Scott/3.

对付浩繁MVC利用法度榜样的缺省默认的路由可以正常事情。稍后您将进修本教程中经由过程应用模型绑定的数据,你就不必改动缺省的路由。

在上面的例子中,节制器不停在做着MVC中“VC”部分的本能机能:也便是视图和节制器的事情。该节制器直接返回HTML内容。平日环境下,您不会让节制器直接返回HTML,由于这样代码会变得异常的繁琐。相反,我们平日会应用一个零丁的视图模板文件来赞助天生返回的HTML。让我们来看看下面我们若何能做到这一点吧。

英文原文地址:

原文地址:http://www.asp.net/mvc/tutorials/mvc-5/introduction/adding-a-controller

您可能还会对下面的文章感兴趣: