1.使用此ViewBag
方法,您可以轻松地从视图模板传递其它参数给布局模板页面。如:@ViewBag.Title
2.@Html.ActionLink("Edit", "Edit", new { id=item.ID })
Html
对象是一个Helper, 以属性的形式在System.Web.Mvc.WebViewPage基类上公开。 ActionLink是一个帮助方法(Helper),便于动态生成指向Controller中操作方法 的HTML 超链接链接。ActionLink
方法的第一个参数是想要呈现的链接文本 (例如,<a>Edit Me</a>
)。第二个参数是要调用的操作方法的名称(在本例中, Edit方法)。最后一个参数是一个匿名对象(anonymous object),用来生成路由数据 (在本例中,ID 为 4 的)。
在上图中所生成的链接是http://localhost:xxxxx/Movies/Edit/4。默认的路由 (在App_Start\RouteConfig.cs 中设定) 使用的 URL 匹配模式为: {controller}/{action}/{id}
。因此,ASP.NET 将http://localhost:xxxxx/Movies/Edit/4转化到Movies
控制器中Edit
操作方法,参数ID
等于 4 的请求。查看App_Start\RouteConfig.cs文件中的以下代码。
MapRoute方法是使用HTTP请求路由查找到正确的控制器(controller)和行动方法,并提供了可选ID的参数。MapRoute方法也被用于通过HtmlHelpers如ActionLink的控制器,操作方法及任何路由数据,以生成URL。
您还可以使用QueryString来传递操作方法的参数。例如,URL: http://localhost:xxxxx/Movies/Edit?ID=3还会将参数ID
为 3的请求传递给Movies
控制器的Edit
操作方法。
3.Html.BeginForm辅助会创建一个<form>标签。当用户通过点击“过滤器”按钮,提交表单, Html.BeginForm助手会导致窗体post到它本身。
@{
ViewBag.Title = "Home Page";
}
<script src="/Content/Msg.js"></script>
<div class="col-md-6" ng-app="myApp" ng-controller="myCtrl" id="my-app">
@*<form ng-submit="sendPost()" novalidate>*@
<form role="form" name="myForm" ng-submit="submitForm(myForm.$valid)" class="form-horizontal" novalidate>
<div class="form-group">
<select class="form-control" ng-model="model.cmbList">
<option ng-repeat="item in datas" value="{{item.id}}">{{item.Name}}</option>
</select>
</div>
<input class="btn btn-primary btn-lg" ng-disabled="myForm.$invalid" type="submit" value="提交" />
</form>
@Html.Partial("/views/home/msg.cshtml")
</div>
<script>
var mymodal = angular.module('myApp', []);
mymodal.controller('myCtrl', function ($scope, $http) {
$scope.model = {};
$http.get("/home/GetData")
.success(function (response) {
$scope.datas = response;
$scope.model.cmbList = $scope.datas[0].id;
debugger
});
//下面可以去掉
$scope.submitForm = function (isValid) {
var data = {
"parentId": $scope.model.parentId,
//"Name": $scope.model.Name
"Name": $scope.model.cmbList
};
$http.post("/home/index/", data)
.success(function (data, status, headers, config) {
$scope.title = "警告";
$scope.msg = data;
$("#myModal").modal("show");
})
.error(function (data, status, header, config) {
alert("no");
});
}
});
</script>
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index( )
{
return View();
}
[HttpPost]
[AllowCrossSiteJson]
public ActionResult Index(Area model)
{
return Json(model.parentId, JsonRequestBehavior.AllowGet);
}
[AllowCrossSiteJson]
public ActionResult GetData()
{
List<Area> datas = new List<Area>
{
new Area{id="12",Name="北京"},
new Area{id="13",Name="上海"},
new Area{id="14",Name="海南"}
};
return Json(datas,JsonRequestBehavior.AllowGet);
}
}
public class Area
{
public string id { get; set; }
public int parentId { get; set; }
public string Name { get; set; }
}