zoukankan      html  css  js  c++  java
  • MVC3 something about form

    Form是个很强大的标签,以前在aspx的时候不怎么注意,现在学MVC发现control和MVC交互数据很方便,action特性用以告知web浏览器信息发往哪里

    例子1

    <form  action=”/Home/Search“  method="get" >
        <input name="q" type="text"/>
    <input type="submit" value="search"/>
    </form>
    而mothod 特性告诉浏览器是使用Http Post 还是使用Http Get。
     在home控制器中
    public ActionResult Search(string q)
    {
       return Content("<script >alert("+q+"');window.location.href=('Index')</script >", "text/html");  
    }
    // 这个函数会自动响应视图中的submit,返回你在name为q的input元素中输入的字符串  这里input的name 属性一定要和Search(string q) 对应
     
     在html 辅助方法中的写法是
    @{Html.BeginForm("Search","Home",FormMethod.Get)}
    <input type="text" name="q"/>
    <input type="submit" value="Search"/>
    @{Html.EndForm();}
    BeingForm 辅助方法询问路由引擎如何找到HomeController控制方法Search的操作
    或者是
    @using (Html.BeginForm("Search","Home",FormMethod.Get))
    {
    <input type="text" name="q"/>
    <input type="submit" value="Search"/>
    }
     
    如果你的form里面不想放submit标签,而是用一张图片,那也可以用脚本指向form.submit();
    例子二
    控制器: 
    public ActionResult Login(string userName, string password)
            {
                return Content("<script >alert("+userName+"');window.location.href=('Index')</script >", "text/html");
            }
    视图

    <input id="userName" name="userName" type="text" />
     
    <input id="password" name="password" type="password" />

     <img id="Loginimg" src="Images/g2b4.jpg" width="85" height="40" alt="" />

    脚本:
    $("#Loginimg").click(function () {
            Login();
        });
    function Login() {
            //获取 Form
            var form = $("form");
            var userName = $("#userName").val();
            var password = $("#password").val();
            if (userName == null || userName == "" || password == null || password == "") {
                alert("用户名或密码不能为空");
            }
            else {
                form.submit();
            }
        }
     
    当然MVC3自带的强类型视图生成的Form是最方便的,直接传递一个对象回去了,而且还带验证。当然样式可能不是大家想要的。你可以去掉哪些不想或者不必显示的项目

    视图:

    @using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
    <legend>TodayPlan</legend>

    @Html.HiddenFor(model => model.NoteId)

    <div class="editor-label">
    @Html.LabelFor(model => model.Name)
    </div>
    <div class="editor-field">
    @Html.EditorFor(model => model.Name)
    @Html.ValidationMessageFor(model => model.Name)
    </div>

    <p>
    <input type="submit" value="Save" />
    </p>
    </fieldset>
    }

    再在控制器中自己的添加

     再补充个题外话

    要在一个视图中,嵌入另外一个强类型视图的分布视图,需要用

    @Html.Partial("viewname",Model) 

    M要大写,Model就是那个分布是视图中需要用的Model,不然单纯的@Html.Partial("viewname") 会报错,它只适合返回普通的视图,html.renderPartial 也一样

    @Html.Action(“name”)  可以显示,但是执行的时候会有很奇怪的错误,昨天用这个方法,返回的create的视图新增时,一直自动的往数据里里面写数据,写了两千多行,吓到了。 一打开那个页面就开始写,删了表中的数据它还是会写。除非关闭网页。 有人知道的为什么的麻烦指教下。 

     
  • 相关阅读:
    手把手编写PHP框架 深入了解MVC运行流程
    利用Nginx+Mono+Fastcgi代替IIS对Asp.Net进行反向代理
    用一句SQL取出第 m 条到第 n 条记录的方法
    项目管理理论与实践(6)——利用Excel制作项目文档的设计技巧
    项目管理理论与实践(7)——软件开发报价的计算方法
    Windows版Nginx启动失败之1113: No mapping for the Unicode character exists in the target multi-byte code page
    redis安装之zmalloc.h:55:2: error: #error "Newer version of jemalloc required"错误
    Vmware虚拟机设置静态IP地址
    Centos查看系统位数方法
    Invalid property 'driverClassName' of bean class [com.mchange.v2.c3p0.ComboPooledDataSource]
  • 原文地址:https://www.cnblogs.com/stoneniqiu/p/2838538.html
Copyright © 2011-2022 走看看