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的视图新增时,一直自动的往数据里里面写数据,写了两千多行,吓到了。 一打开那个页面就开始写,删了表中的数据它还是会写。除非关闭网页。 有人知道的为什么的麻烦指教下。 

     
  • 相关阅读:
    flask简单应用以及配置文件的写法。
    Django REST framework使用及源码分析之节流
    rancher1.6高可用集群搭建
    Rancher安装多节点高可用(HA)
    Rancher 2.2.2
    TeamCity+Rancher+Docker实现.Net Core项目DevOps(目前成本最小的DevOps实践)
    Docker学习笔记_10 docker应用
    一键获取数据库整体信息脚本
    MySQL性能优化最佳实践
    MySQL性能优化最佳实践
  • 原文地址:https://www.cnblogs.com/stoneniqiu/p/2838538.html
Copyright © 2011-2022 走看看