您好我可以在我的视图中调用一个函数来获取foreach中的id的描述
我的观点
@if (Model != null)
{
int i = 1;
foreach (var item in Model)
{
<tr class="">
<td class="left">@{ new Fullname().getfullname(item.student_id.value).ToString(); }</td>
<td class="left"></td>
<td class="left">@CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(item.paid_month.Value).ToUpper()</td>
<td class="left">@item.monthly</td>
<td class="left">@item.transport</td>
<td class="left">@item.discount_details</td>
<td class="left">@item.total</td>
</tr>
}
}
public class Fullname
{
private dbEntities db = new dbEntities();
public string getfullname(int? id)
{
var StudentSelect = db.student.Where(s => s.student_id == id)
.Select(s => new
{
FullName = s.lastname + " " + s.firstname
});
return StudentSelect.FirstOrDefault().FullName;
}
}
我试图从模型中的@ item.student_id获取学生全名
但没有显示
感谢
答案 0 :(得分:2)
问题是你正确检索了Fullname,但是你永远不会将它作为字符串发送到渲染视图中。
使用@variableName
语法将C#变量的值作为字符串发出:
@{ var fullname = new Fullname().getfullname(item.student_id.value).ToString(); }
<td>@fullname</td>
答案 1 :(得分:0)
在MVC中,交互发生在模型与视图之间,反之亦然。要在中间移动,我们需要发生一些事件,然后通过ajax或表单提交来处理。在这里,您尝试从某个控制器返回后引用类函数,这意味着不会触发任何事件,因此不会对该函数进行调用,也不会返回任何数据。但仍然可以肯定,因为你可以在你的功能上设置一个断点,并检查控件是否适用。