[asp.net-mvc]web 窗体的一个文本框和两个按钮

发布时间: 2016/10/5 15:50:10
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我怎么可以有两个按钮过帐到同一文本框中采取不同的行动?

为如︰ 我有两个按钮"获得 Student(xls)"和"获得 Student(pdf)",我想要触发不同的 ActioResult 方法。我只能够触发的一种方法,因为启动 excel,即:"学生/StudentExcel /"发射 pdf 的第二个方法是:"学生/StudentPdf /"。

这里是我的截图为窗体︰

enter image description here

这里是我的视图页的代码︰

<%@ Page language="c#" AutoEventWireup="true" %>
<%@ Import NameSpace="System.IO" %>
<%@ Import NameSpace="System" %>
<%@ Import NameSpace="System.Data" %>
<%@ Import NameSpace="System.Web" %>
<%@ Import NameSpace="System.Text" %>
<%@ Import Namespace="STUDENT.Controllers" %>


<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Get Student File</title>
</head>
<body>

    <div>

    <form method="post" action="/Student/StudentExcel/">
    <label for="id">Student Number: </label>
    <input type="text" name="id" value="" />
    <br /><br />
    <input type="submit" value="GetStudent(xls)"/>  &nbsp;&nbsp
    <input type="submit" value="Get Student(pdf)" /> 
    </form>
    </div>

解决方法 1:

我怎么可以有两个按钮过帐到同一文本框中采取不同的行动?

你不能没有 javascript 和普通的 HTML。

我建议你选择︰ 您可以使用两个提交按钮提交相同的控制器操作的不同名称和内此控制器操作可以检索被单击提交按钮的名称和采取相应的行动。

<form method="post" action="/Student/Dispatch/">
    <label for="id">Student Number: </label>
    <input type="text" name="id" value="" />
    <br /><br />

    <input type="submit" value="Get Student(xls)" name="xls" />  
    &nbsp;&nbsp
    <input type="submit" value="Get Student(pdf)" name="pdf" /> 
</form>

和内部调度行动︰

[HttpPost]
public ActionResult Dispatch(string pdf, string id)
{
    if (!string.IsNullOrEmpty(pdf))
    {
        // The GetPdf submit button was clicked
        return StudentPdf(id);
    } 

    // The GetXls submit button was clicked
    return StudentExcel(id);
}
赞助商