c# - 将值从 View 传递到 Controller - MVC

标签 c# javascript asp.net asp.net-mvc

我有一个缩略图列表,用户可以选择其中一张图像。

单击缩略图,将较大的图像打开到表单中。

我现在想做的是将所选图像的 ID 发送到我的 Controller 。

注意:我使用的是 MVC 4。

我该怎么做?

有人可以帮忙解决这个问题吗?

提前致谢:

这是我的代码:

 @foreach (var p in ViewBag.Images)
    {           
     <li>
       <a href="~/Files/@p.Name" onclick="swap(this); return false;">
          <img src="~/Files/@p.Name"/>
       </a>
     </li>
}

当选择时,我的表单中将包含此 img 标签:

<img id="main" src="" >

为此事件使用此 JavaScript:

function swap(image) {
        document.getElementById("main").src = image.href;
    }

我现在必须做什么?

我尝试使用 <input type="hidden" name="Img_Id" value="Viewbag.??????"/> 将此值传递给我的 Controller ??

最佳答案

首先,一些术语帮助:您无法将值从 View 传递到 Controller 操作, View 在 Controller 操作完成后呈现。

您想要做的是使用表单字段将数据从客户端(网络浏览器)传递到 Controller 操作。

在 JavaScript 交换方法中,您可以将 Img_Id 字段的值设置为所选图像的值。提交表单时,Img_Id 将作为表单数据发布,并且可以作为操作中的参数接受。

您可以使用 JQuery(或其他东西)来执行客户端操作。

这是一个示例(尚未测试!):

首先将 ID 添加为元素上的数据属性:

<a href="~/Files/@p.Name" data-id="@p.ID" onclick="swap(this); return false;">

然后使用一些 javascript 将其保存到表单(此处使用 jquery):

function swap(image) {
    document.getElementById("main").src = image.href;
    $("input[name='Img_Id']").val($(image).data("id"));
}

关于c# - 将值从 View 传递到 Controller - MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18638255/

相关文章:

c# - 如何处理空字符串?

javascript - 更新 ng 类上的特定对象

javascript - 根据用户输入在页面上创建金字塔结构图

javascript - 在不知道完整网址的情况下获取一部分网址

javascript - 刷新 View 以应用新选择的主题

asp.net - 创建 RSA key 容器有时有效有时无效

javascript - jsTree 无法正确渲染列表?

c# - 如何从 C# 中的图像目录创建视频?

c# - 使用 AJAX 进行线程化

c# - 如何创建两个行为不同但接收相同数据类型的构造函数?