【问题标题】:how to fetch data from html controls in view to controller?如何从视图中的html控件获取数据到控制器?
【发布时间】:2016-06-14 20:45:43
【问题描述】:

我有一些用 html 编写的页面,所有控件都使用 html 格式,就像文本框一样,我无法将这些控件更改为 @html.text。 但我必须从控制器中获取数据并对数据执行一些逻辑。有人可以告诉我如何获取数据吗? 这是我认为用html编写的html代码

<div class="clearfix"></div>
                                <label class="label">Customer Name</label>
                                <select class="browser-default" name="Customername">
                                    <option value="Customer Name1">Customer Name1</option>
                                    <option>Customer Name2</option>
                                    <option>Customer Name3</option>
                                </select>
                                <div class="pull-left"><a href="#" class="newCustomer">New Customer</a></div>
                                <div class="clearfix"></div>
                                <label class="label">Job Referene</label>
                                <select class="browser-default" name="jobreference">
                                    <option>Job Referene</option>
                                </select>
                                <div class="clearfix"></div>
                                <label class="label">Quantity</label>
                                <input type="text" name="quantity" />
                                <div class="clearfix"></div>
                                <label class="label">Browser Select</label>
                                <select class="browser-default">
                                    <option value="" disabled selected>Choose your option</option>
                                    <option value="1">Option 1</option>
                                    <option value="2">Option 2</option>
                                    <option value="3">Option 3</option>
                                </select>

我想在我的控制器中获取数据。

【问题讨论】:

    标签: c# html asp.net-mvc asp.net-mvc-4 model-view-controller


    【解决方案1】:

    您需要在视图页面中的每个 html 控件上都有一个 name 属性才能访问其在控制器中的值

    在你看来

    <input type ="text" name"Textbox1" value="TestValue" />
    

    在你的控制器中

    public ActionResult Test(string Textbox1)
    {
       // Do your code manipulation here
    }
    

    注意:name 属性必须与控制器中的参数名称匹配,您可以拥有任意多个命名参数,或者您可以使用单个表单集合来访问输入字段。

    【讨论】:

    • 控件这么多...怎么用这种方式获取数据?
    • 使用 formcollection - 就像我在回答中所说的那样 - 所有控件都将在发布时推送到集合中。
    • 我使用了formcollection,但我只是得到了每个控件的名称属性,而不是我在控件中填写的值...... :(
    • 我想获取用户在 html 控件中填写的数据
    • 您的控件是否在表单标签内?
      //你的控件在这里
    【解决方案2】:

    如果 html 控件有名称,您可以像这样使用 FormCollection:

    public class HomeController : Controller
    {
        [HttpPost]
        public ActionResult Index(FormCollection formCollection)
        {
            var value = formCollection["nameOfControl"];
            //do stuff
            return View();
        }
    }
    

    但要小心;这 - 一般来说 - 不是一个好方法。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多