在 Html.BeginForm 中传递并非来自 <input> 的参数

Pass parameters in Html.BeginForm that don't come from <input>

我正在使用 Html.BeginForm("Details", "ControllerName", FormMethod.Post) 将一些参数发送到我的 Controller。一切正常。但是,它仅适用于 Html 中的 <input> 标签。有没有办法post其他标签的值?例如 <span> 或其他什么?所以在我的 ActionResult Details() 结尾,我可以在 <span>?

中收到这些值

谢谢

不,你不能。只有 inputselecttextarea 控件值会发布到服务器。您可以在后台设置一个带有 span 值的隐藏输入控件,但您不能期望 span 会自动发布。

如果你使用javascript,你可以。下面的示例。

document.getElementById('submit').onclick = function(e) {
    e.preventDefault();

    var form = document.getElementById('myForm');

    var data = new FormData();
    // put whatever you want to put through data.append([name], [value])

    var xhr = new XMLHttpRequest();
    xhr.open("POST", form.action);
    xhr.send(data); 
};