我有 MVC 4 应用程序。情况如下:
1. 模型 HashKey - 包含 1 个字符串键
2. 模型 ModelObjectA - 我要传输的对象。
3. A 类 - 根据请求生成唯一键并将其与给定的 ModelObjectA 一起放入 TempData 并返回此唯一键。
4. 控制器 ControllerModelObjectA - 作为纯控制器。
5. 查看 ShowAllModelObjectA - 查看页面以显示来自控制器的集合。
这是如何工作的。我请求导航到 ShowAllModelObjectA。控制器使用要传输的对象调用类 A,并将唯一键发送到 ShowAllModelObjectA。视图调用方法来获取(不是 HttpGET)对应于从控制器接收到的键的对象。接收到这个对象集合,并在 @foreach 循环中分解对象并将它们放在一个表中。除了表中的对象之外,还放置了 3 个按钮,代表不同的功能(查看详细信息、编辑、删除)到相应的对象。
问题:在每个对象的按钮上,我必须使用@functions 来调用 ClassA 并发送对象本身,但只能点击而不是 for 循环。
这是一些代码(我已更改名称:))
@functions{
public string ButtonClicked(ModelObjectA object)
{
System.Diagnostics.Debug.WriteLine("in");// to check when the method is called
return "dae";
}
}
The foreach loop:
<table>
@foreach (ModelObjectA Object in ModelObjectACollection)
{
<tr>
<td>
@Html.DisplayFor(modelItem => Object.Name)
</td>
<td>
@Html.DisplayFor(modelItem => Object.Email)
</td>
<td>
<button type="button" id="details" value="@Object" onclick="hello(value);">Details</button>
<button type="button" value="@Object">Edit</button>
<button type="button" value="@Object">Delete</button>
</td>
</tr>
}
</table>
<script type="text/javascript">
function hello(Value) {
alert("Clicked");
}
</script>
从现在开始我可以访问@ModelObjectA,但我无法将它发送到剃刀函数,因为java在客户端,而剃刀在服务器端。
还有其他方法可以做到这一点吗?
编辑:这是租用的按钮:
<td>
<button type="button" id="details" value="(Project path).ModelObjectA" onclick="hello(value);">Details</button>
<button type="button" value="(Project path).ModelObjectA">Edit</button>
<button type="button" value="(Project path).ModelObjectA">Delete</button>
</td>
编辑 2:我不确定我需要使用什么来满足该要求。我愿意接受建议。