我有MVC 4应用程序。这里是:
1. Model HashKey - 包含1个字符串键
2.模型ModelObjectA - 我的传输对象。
3. A类 - 根据请求生成唯一键,并将其与给定的ModelObjectA一起放入TempData中,并返回此唯一键。
4.控制器ControllerModelObjectA - 充当纯控制器。
5.查看ShowAllModelObjectA - 查看页面以显示来自控制器的集合。MVC 4按钮onClick即调用剃须刀功能
这是如何工作的。我有请求导航到ShowAllModelObjectA。控制器使用要传输的对象调用类A并将唯一键发送到ShowAllModelObjectA。该视图调用方法来获取(不是HttpGET)与从控制器接收到的密钥对应的对象。这个对象的集合被接收,并且在@foreach循环中反汇编对象并把它们放在一个表中。与表中的对象一起还有3个按钮,代表不同的功能(查看详细信息,编辑,删除)到相应的对象。
问题: 在每个object`s按钮,我不得不使用@functions调用ClassA和发送的对象本身,而是仅在点击后没有对循环。
下面是一些代码(我修改了名字:))
@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是在客户端和剃刀在服务器上。
有没有另一种方法来做到这一点?
编辑: 这里是rentered按钮:
<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:我不知道我需要使用履行这一要求。我很乐意提供建议。
但是你的观点获得服务器端准备,您可以在您的视图javascpit。传递给你的hello()函数的价值是什么? –
请问您可以考虑为您的问题提供不同的标题吗? “MVC 4个问题”太模糊了,不利于其他人从答案中获益。 –