首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ASP.Net MVC5的模型中获取超文本标记语言输入按钮Id?

如何在ASP.Net MVC5的模型中获取超文本标记语言输入按钮Id?
EN

Stack Overflow用户
提问于 2018-08-10 01:34:26
回答 2查看 577关注 0票数 0

我们在Input HTML标签中有一个按钮id为“previewButton”。

代码语言:javascript
复制
<button type="submit" id="previewButton"></span>Preview</button>
<button type="submit" id="submitButton"></span>Submit</button>

我需要在模型中获取Id = previewButton (或) submitButton。

代码语言:javascript
复制
public class MyTestViewModel : BaseModel
{
    public MyTestViewModel()
    {
        IsDateChanged = null;
        IsChanges = null;
    }

    public Guid ID { get; set; }

    [Required(ErrorMessage ="Required")]
    [Display(Name = "Determine the date has changed?")]
    public int? IsDateChanged { get; set; }

    [Required(ErrorMessage = "Required")]
    [Display(Name = "Is there any changes?")]
    public int? IsChanges { get; set; }

    public string PersonName { get; set; }

    [DataType(DataType.Date)]
    public DateTime PersonDOB { get; set; }

 }

Jquery:

代码语言:javascript
复制
$(document).ready(function () {
    $("button").click(function () {
        var clickedButtonName = $(this).val();
        $("#clickedButton").val(clickedButtonName);
        $('#previewButton').trigger('submit');
    });
});

控制器:

代码语言:javascript
复制
  public ActionResult New(MyTestViewModel viewModel, string ClickedButton)
    {
        var vm = ClickedButton;
        return View(vm);
    }

如何在c#中获取HTML Input Button Id -模型或控制器?

EN

回答 2

Stack Overflow用户

发布于 2018-08-10 01:41:28

您可以为两个按钮提供相同的name属性值,并为value属性提供唯一的值。

代码语言:javascript
复制
@using (Html.BeginForm("New", "Home"))
{
   <!-- Your other form input elements goes here -->

   <button type="submit"  value="preview" name="from">Preview </button>
   <button type="submit" value="submit" name="from">Submit </button>
}

当表单提交时,它将在表单数据中发送单击的按钮值。

现在,在处理表单提交的操作方法中,可以添加另一个与按钮名称同名的参数

代码语言:javascript
复制
[HttpPost]
public ActionResult New(MyTestViewModel viewModel,string from)
{
    // to do : use "from"
    // to do : return something
}

或者,您可以使用与按钮名称相同的名称将新属性添加到视图模型中。

代码语言:javascript
复制
public class MyTestViewModel 
{
    // your existing properties goes here
    public string From { set;get;}
}

提交表单时,模型绑定器将能够将按钮值名称映射到此新属性。

票数 0
EN

Stack Overflow用户

发布于 2018-08-10 02:17:04

表单应如下所示:

代码语言:javascript
复制
@using (Html.BeginForm("New", "Home", FormMethod.Post, new {id="MyFormId"}))
{
   <input type="hidden" id="clickedButton" name="clickedButton" value="">

   <!-- Your other form input elements goes here -->
   <button type="button"  value="preview">Preview</button> // button type is button not submit
   <button type="button" value="submit">Submit</button> // button type is button not submit
}

然后在jQuery中使用

代码语言:javascript
复制
$(document).ready(function(){
    $("button").click(function(){
        var clickedButtonName =  $(this).val();
        $("#clickedButton").val(clickedButtonName);
        $('#MyFormId').trigger('submit');
    });
});

然后在控制器Post方法中使用

代码语言:javascript
复制
[HttpPost]
public ActionResult New(MyTestViewModel viewModel,string clickedButton)
{
    // do the necessary staff here
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51772915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档