Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我怎样才能做到最好?_C#_Asp.net Mvc_Asp.net Mvc 4_Razor_Model Binding - Fatal编程技术网

C# 我怎样才能做到最好?

C# 我怎样才能做到最好?,c#,asp.net-mvc,asp.net-mvc-4,razor,model-binding,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,Model Binding,我得到了一个具有以下属性的viewmodel: int Balance int WithdrawAmount 我在ASP.NET MVC4应用程序中的一个视图允许用户从余额中取款。 现在,当通过GET请求访问页面时,我获取用户余额,并通过取款视图模型将其传递给视图,从而将其显示给用户-在模型中,取款金额是因为用户尚未指定要取款的金额 用户输入想要提取的金额,并提交发送提取金额的POST请求 现在,我再次将取款金额绑定到取款视图模型,以便自动检查modelstate是否有效(金额高于0) 最后我

我得到了一个具有以下属性的viewmodel:

int Balance
int WithdrawAmount
我在ASP.NET MVC4应用程序中的一个视图允许用户从余额中取款。 现在,当通过GET请求访问页面时,我获取用户余额,并通过
取款视图模型
将其传递给视图,从而将其显示给用户-在模型中,
取款金额
是因为用户尚未指定要取款的金额

用户输入想要提取的金额,并提交发送提取金额的POST请求

现在,我再次将
取款金额
绑定到
取款视图模型
,以便自动检查modelstate是否有效(金额高于0)

最后我提取了金额等

我想知道的是,是否有更好的方法来实现这一点?在我看来,当值明显不同(余额在模型中或
取款金额在模型中)时,使用相同的viewmodel似乎很愚蠢-实际上使它们成为两个不同的模型


我可以用更好的方法吗?

如果您只需要取款金额,只需让控制器操作方法采用
int
参数即可

[HttpPost]
[Authorize]
public ViewResult MyMethod(int withdrawAmount){ ... }

是的,但是我不能添加验证规则,比如金额必须高于零等等。那么不,你是在用最好的方法。ViewModel包含这两个值非常好。我明白了-非常感谢,我只是想确保我不习惯坏习惯。