当前位置:  开发笔记 > 编程语言 > 正文

在ASP.net MVC中实现表单

如何解决《在ASP.netMVC中实现表单》经验,为你挑选了1个好方法。

我在视图页面上有一个简单的表单,实现为用户控件,看起来像这样:

<%=Html.BeginForm("List", "Building", FormMethod.Post) %>

//several fields go here

<%Html.EndForm(); %>

我想解决两个问题,第一个是我希望接收它的控制器方法获取用户控件的类型参数.目标是避免将表单的所有字段放入方法的参数列表中.控制器方法目前看起来像这样:

[AcceptVerbs("Post")]
    public ActionResult List(string capacityAmount)
    {
        ProfilerDataDataContext context = new ProfilerDataDataContext();
        IEnumerable result = context.Buildings.OrderBy(p => p.SchoolName);
        ViewData["Boroughs"] = new SelectList(Boroughs.BoroughsDropDown());

        return View(result);
    }

表单中的其余字段将用于对建筑物类型进行搜索.

表单发布很好,我可以按照你期望的方式搜索容量,但是当我在搜索中添加参数时,我可以闻到丑陋.

其次,较小的问题是当页面呈现时,BeginForm标记将字符串"System.Web.Mvc.Form"呈现给页面.我如何让它消失?



1> Craig Stuntz..:

1)使用FormCollection作为参数:

public ActionResult List(FormCollection searchQuery)

现在,您可以迭代FormCollection并从搜索表单中获取键/值搜索词.

2)从BeginForm中删除"=":

<% Html.BeginForm("List", "Building", FormMethod.Post) %>

那就是说,你真的应该使用,嗯......使用:

<% using (Html.BeginForm("List", "Building", FormMethod.Post)) { %>
<% } %>

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有