gpt4 book ai didi

c# - html 表单发布到 mvc Controller

转载 作者:太空狗 更新时间:2023-10-30 00:32:09 26 4
gpt4 key购买 nike

我正在尝试设置一个简单的登录 html 页面,其操作将发送到我的另一个站点上的 mvc Controller 。我在设置页面来发布帖子时没有问题,并且在 mvc Controller 中我有读取表单帖子的方法。问题是我没有在表单集合的 html 表单中看到我的字段。

在 mvc Controller 方法中阅读表单帖子是否需要做一些特别的事情,如果是的话那是什么?


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

<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>

Controller 方法

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

当我单步执行 Controller 方法代码时,我在 formcollection 参数中看不到任何内容。

最佳答案

将 Html 发布到 MVC Controller

  1. 用表单创建 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 中

                         controller/action
| |

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

  1. 创建名为 rec.cshtml 的 View

这是 Controller :

 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);
}
}

这是 View :

@{
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 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19697283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com