gpt4 book ai didi

c# - 在 Razor ASP.NET MVC 中调用方法

转载 作者:太空宇宙 更新时间:2023-11-03 20:04:35 24 4
gpt4 key购买 nike

我是 MVC 的新手,无法在 View 输入字段中显示特定方法的结果。我不太确定是否应该在 cshtml 或单独的 cs 文件中创建该方法。

我已经使用@function 标签在下面的cshtml 文件中创建了我的方法

@functions{

public int DaysCalc(DateTime first, DateTime second)
{
QuoteApp.Models.Quote ts = new QuoteApp.Models.Quote();
ts.StartDate = first;
ts.EndDate = second;

int days;
days = (second.Day - first.Day);
return days;


}

}

我在cshtml文件中是这样调用的

 @Html.EditorFor(model =>model.DaysCalc(model.StartDate, model.EndDate), new { htmlAttributes = new { @class = "form-control", disabled = "disabled"} })

我收到一条错误信息

模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。

描述:当前网络请求执行过程中出现未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。

异常详细信息:System.InvalidOperationException:模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。

来源错误:

Line 63:             @Html.LabelFor(model => model.noOfDays, htmlAttributes: new { @class = "control-label col-md-2" })
Line 64: <div class="col-md-10">
Line 65: @Html.EditorFor(model =>@DaysCalc(model.StartDate, model.EndDate),new { htmlAttributes = new { @class = "form-control", disabled = "disabled"} })
Line 66: @Html.ValidationMessageFor(model => model.noOfDays, "", new { @class = "text-danger" })
Line 67: </div>

Source File: Line: 65

最佳答案

如果您想使用 EditorFor,请创建一个返回计算值的属性。

public class YourModel
{
public int CalculatedDays
{
get
{
QuoteApp.Models.Quote ts = new QuoteApp.Models.Quote();
ts.StartDate = first;
ts.EndDate = second;

return (ts.EndDate - ts.StartDate);
}
}
}

@Html.EditorFor(model => model.CalculatedDays, new { htmlAttributes = new { @class = "form-control", disabled = "disabled"} })

关于c# - 在 Razor ASP.NET MVC 中调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24561577/

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