ASP.NET Razor 页面 - 设置其他 Class 来自表单输入的变量

ASP.NET Razor Page - Set Other Class Variable From Form Input

我有一个简单的表格:

'''
<form method="post">
    <label type="text" asp-for="@OtherClass.Key"/>
    <button type="submit" asp-page="Page">Submit</button>
</form>
'''

我正在尝试获取字符串输入,当单击提交按钮时,将另一个 class 的静态字符串变量设置为输入值。

'''
public class OtherClass {
    public static string Key { get; set; }
}
'''

我是 ASP.NET 的新手,所以我想我通常是在问如何从表单设置不同 class 的静态变量?

一种选择是在表单中使用隐藏字段并使用 java 脚本设置值。 您可以在触发提交时设置它

document.querySelector("#myForm").addEventListener("submit", function(e){
    if(isValid){
       document.getElementById("mytext").value = "My value";
    }
});

请注意,静态可能是一个问题,因为所有用户都将具有相同的值。如果您重新填充该值,如果您绑定它,表单将简单地重新提交该值

您不能直接将输入值绑定到静态 属性。

<form method="post">
    <input type="text" asp-for="Key" />
    <button type="submit" asp-page="Page">Submit</button>
</form>

在post方法中给它赋值

[BindProperty]
public string Key { get; set; }

public void OnGet()
{
    Key = OtherClass.Key;
}

public void OnPost()
{
    OtherClass.Key = Key;
}