从控制器而不是视图中发送模型值

本文关键字:模型 视图 控制器 | 更新日期: 2023-09-27 18:32:50

目前我有用户从下拉列表中选择值,它通过控制器发送,如下所示:

if (model.HomeEquityDetails.LumpSumLineCredit == "Lump Sum")
        {
            loanInfo.LumpSum = true;
            loanInfo.LineOfCredit = false;
        }
        else
        {
            loanInfo.LineOfCredit = true;
            loanInfo.LumpSum = false;

我如何对其进行硬编码,以便它像往常一样返回LumpSumLineCredit,以便用户不再需要选择。 我基本上想要

HomeEquityDetails.LumpSumLineCredit

在控制器中始终等于"一次性付款"。 我可以发送吗

loanInfo.LumpSum = true;

从控制器而不是视图中发送模型值

稍微 OT 但假设您想在代码上方保持相同的逻辑,可以简化为:

loanInfo.LumpSum =  model.HomeEquityDetails.LumpSumLineCredit == "Lump Sum";
loanInfo.LineOfCredit = !loanInfo.LumpSum;

这最终删除了 if 测试并简化了代码,如果不再需要测试"一次性付款">

loanInfo.LumpSum =  true;
loanInfo.LineOfCredit = !loanInfo.LumpSum;
似乎您还需要指定贷款类型,

因此假设您要添加贷款类型,拥有布尔值将是一场维护噩梦。您可以考虑以下几点:

public enum LoanTypeEnum {
   LineOfCredit,
   LumpSum
}
public struct LoanInfoStruct {
   public LoanTypeEnum LoanType {get; set; )
}

这意味着代码将简化为假设loanInfo是一个LoanInfoStruct:

loanInfo.LoanType = LoanTypeEnum.LineOfCredit;