gpt4 book ai didi

c# - 在 C# MVC 应用程序中,是否可以从未更改的控件中的网页提交变量?

转载 作者:行者123 更新时间:2023-11-30 12:11:04 25 4
gpt4 key购买 nike

我有一个 C# MVC 应用程序和一个 <form>在我的 page.cshtml文件。以那种形式我有<input type="text" ... />元素。如果我提交此表单,我只会得到 Response.Params 中的值或 Response.Form从我手动更改值的输入(即输入文本框然后输入内容)。

如果我使用 jQuery 更改值,$('#myInput').val('some value');这不算作输入值的变化,我没有得到 myInput提交表单时的值。

有什么方法可以确保提交所有输入吗?如果没有,那么是否有一个很好的解决方法,也许在我的模型被绑定(bind)之前发生的某些事件?我需要知道提交时表单中的所有输入值,无论它们是否更改。

一些附加信息:

在我的 Controller 中调用 POST 操作时,表单和其他值已正确提交并且我收到了我的模型。

真正的问题是我的模型何时被绑定(bind)。它正在创建并与所有值绑定(bind),但未提交的值除外,因为它不在 Request.Params 中。收藏。

最佳答案

我只在禁用字段时见过这种行为。因此,我通常有一个 javascript 函数来处理表单提交并在提交时重新启用它们,这样正确的值就会发送到服务器。

像这样的东西对我有用(注意:我使用的是 JQuery):

$(document).ready() {
$("#ButtonSubmit").click(SubmitForm);
}

function SubmitForm(e) {
e.preventDefault();

//ensure fields are enabled, this example does text and checkbox types
$("[type='text']").attr("disabled", false);
$("[type='checkbox']").attr("disabled", false);

//submit the form
document.forms[0].submit();
}

我不知道有什么更简单的方法可以做到这一点,如果您可以“标记”指示提交所有字段的内容,那就太好了。但我不知道这是否存在,也许其他人可以提供更好的解决方案。

编辑:看来不提交的禁用字段只是 HTML 的本质,而不是与 MVC 相关的东西。


似乎如果您将字段设为readonly 而不是disabled,那么这些值仍会提交。但是,通过这种方法,您将失去“禁用”样式。此规则的异常(exception)是 select 控件,似乎这也不会在 readonly 下提交。 More information on this can be in this question

关于c# - 在 C# MVC 应用程序中,是否可以从未更改的控件中的网页提交变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16282209/

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