C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c# – html表单发布到mvc控制器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试设置一个简单的登录html页面,其操作被发送到我的另一个网站上的mvc控制器.我没有问题设置页面来做帖子,在mvc控制器中我有我的方法来读取表单帖子.问题是我没有在表单集合中看到html表单中的字段.

在mvc控制器方法中读取表单帖需要做些什么特别的事情,如果是这样的话是什么?

这是我页面中的表单操作标记

<form action="http://reconciliation-local.sidw.com/login/launch" method="post">
    User Name <input type="text" id="username"/><br/>
    Password <input type="text" id="password"/>
    <input type="submit" value="launch"/>


</form>

控制器方法

[HttpPost]
    public ActionResult launch(FormCollection fc)
    {
        foreach (string fd in fc)
        {
            ViewData[fd] = fc[fd];
        }
        return View();
    }

当我单步执行控制器方法代码时,我在formcollection参数中没有看到任何内容.

解决方法

将Html发布到MVC控制器

>使用表单创建HTML页面(不要忘记引用Jquery.js)

    
    
    

    

<form id="myform" action="rec/recieveData" method="post">

    User Name <input type="text" id="username" name="UserName" /><br />
    Password  <input type="text" id="password" name="Password"/>
              <input type="submit" id="btn1" value="send" />
</form>

<script>
    $(document).ready(function () {

         //get button by ID
        $('#btn1').submit(function () {

            //call a function with parameters
            $.ajax({
                url: 'rec/recieveData',//(rec)= Controller's-name 
                                         //(recieveData) = Action's method name
                type: 'POST',timeout: '12000',(optional 12 seconds)
                datatype: 'text',data: {
                    //Get the input from Document Object Model
                    //by their ID
                    username: myform.username.value,password: myform.password.value,}

            });
        });
    });

</script>

然后在MVC控制器中

controller/action
                             |        |

1.创建名为rec的rec(rec / recieveData)

>创建名为rec.cshtml的视图

这是控制器:

public class recController : Controller
    {
        // GET: rec
        string firstname = "";
        string lastname = "";

        List<string> myList = new List<string>();

        public ActionResult recieveData(FormCollection fc)
        {
          //Recieve a posted form's values from  parameter fc
            firstname = fc[0].ToString(); //user
            lastname = fc[1].ToString();  //pass

           //optional: add these values to List
            myList.Add(firstname);
            myList.Add(lastname);

            //Importan:
            //These 2 values will be return with the below view
            //using ViewData[""]object...
            ViewData["Username"] = myList[0];
            ViewData["Password"] = myList[1];

            //let's Invoke view named rec.cshtml
            // Optionaly we will pass myList to the view
            // as object-model parameter,it will still work without it thought
            return View("rec",myList);
        }
    }

这是视图:

@{
    ViewBag.Title = "rec";
}

<h2>Hello from server</h2>

<div>
    @ViewData["Username"]<br /> <!--will display a username-->
    @ViewData["Password"] <!-- will display a password-->

</div>

大佬总结

以上是大佬教程为你收集整理的c# – html表单发布到mvc控制器全部内容,希望文章能够帮你解决c# – html表单发布到mvc控制器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: