快速业务通道

ASP.NET MVC案例教程(基于ASP.NET MVC beta)—第四篇:传递表单数据

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
Inherits="MVCDemo.Views.Announce.Release" %>
2<%@ Import Namespace="MVCDemo.Models.Entities" %>
3
4<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6<html xmlns="http://www.w3.org/1999/xhtml" >
7<head runat="server">
8  <title></title>
9</head>
10<body>
11  <% SelectList categories = ViewData["Categories"] as SelectList; %>
12  <div>
13     <h1>MVC公告发布系统——发布公告</h1>
14    <% Html.BeginForm ("DoRelease","Announce",FormMethod.Post); %>
15    <dl>
16      <dt>标 题:</dt>
17      <dd><%= Html.TextBox("Title") %></dd>
18       <dt>分类:</dt>
19      <dd><%= Html.DropDownList("Category",categories) % ></dd>
20      <dt>内容:</dt>
21      <dd><%= Html.TextArea ("Content") %></dd>
22    </dl>
23    <input type="submit" value="发布" />
24    <% Html.EndForm(); %>
25  </div>
26</body>
27</html>

代码不复杂,但是要注意几个地方。categories不多说了,这是刚才我们传递过来的所有分类组成的列表项 。我觉得大家迷惑的可能是那些Html.***的东西,其实,Html是ViewPage的中的一个对象(ViewPage是所有视图的基类),它主要的左右就是 产生各种表单项(先这么认为吧,其实它还有其他功能),例如Html.BeginForm就是说这里开始一个form标签,而Html.EndForm当然是form标 签结束。其他几个,看名字相信大家也猜出来了。

至于为什么这么做,也不直接使用原始的HTML标签,我先不多说,以后大家做多了自 然就理解了,目前大家只要知道,这样做可以避免一个url问题以及让url更灵活就行了。^_^

回到这个页面,BeginForm有三个参数,分 别是提交请求的Action名,提交请求的Controller名和请求方式。所以,这个页面的意思就是使用post方法请求 http://localhost/Announce/DoRelease这个Action来处理我们的请求。

页面中有三个输入表单和一个提交按钮。三个输入表单分别是 :名叫Title的文本框,名叫Content的文本域和名叫Category的下拉列表框。注意下拉列表是怎么绑定的,只要将含有数据的SelectList作为 第二个参数就行了。完成后,页面是这样子的:

ASP.NET MVC案例教程(基于ASP.NET MVC beta)—第四篇:传递表单数据

处理请求

现在我们可以输入信息了,但是如果你输入后点提交,你会发现产生了经典的404错误。刚才我们说了,表单提交到 的Action是Announce下的DoRelease,但是现在没有这个Action,当然会404了。下面,我们来建立这个处理程序。

回到 AnnounceController,新建Action方法DoRelease,具体代码如下。

AnnounceController.cs:

1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Web;
5using System.Web.Mvc;
6using System.Web.Mvc.Ajax;
7using MVCDemo.Models;
8using MVCDemo.Models.Interfaces;
9using MVCDemo.Models.Entities;
10
11namespace MVCDemo.Controllers
12{
13  public class AnnounceController : Controller
14  {
15    public ActionResult Release()
16    {
17      ICategoryService

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号