从组合框中选择项目时显示MessageBox

时间:2018-07-19 20:02:02

标签: c# asp.net-mvc

我开始玩mvc。

我需要以下内容:一个组合框,当用户选择其中一个项目时,会弹出一个messageBox并显示“ Please work this time !!!”。

这是我的代码:

Index.html:

@Html.DropDownListFor(x => x.SelectedFileName, Model.Files, new { Name = "map", @class = "form-control" })

HomeVM:

public class HomeVM
{
    public List<SelectListItem> Files { get; set; }
    public string SelectedFileName { get; internal set; }
    public List<string> DynamicAlgorithems { get; set; }
}

HomeController:

[HttpPost]
public ActionResult ShowAllMobileDetails(HomeVM MV)
{
    string SelectedValue = MV.Files.Count.ToString();
    MessageBox.Show("Please work this time!!!");
    return View(MV);        
}

问题是:我可以在组合框中看到所有项目,但是当用户选择其中一个时,MessageBox不会弹出。

您知道我所缺少的吗?

1 个答案:

答案 0 :(得分:1)

在asp.net MVC中,您无法MessageBox.Show用于winform

设置id='SelectedFileName' OnChange事件。并使用js alert函数

您可以使用js来实现。

这是一个jQuery示例。

$('#SelectedFileName').change(function(){
   alert('Please work this time!!!');
});

$('#SelectedFileName').change(function(){
   alert('Please work this time!!!');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<select id="SelectedFileName">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

或者在您的问题中,可以直接在dropdownList中绑定onchange事件。

@Html.DropDownListFor(x => x.SelectedFileName, Model.Files, new { Name = "map", @class = "form-control" , onchange = @"alert('Please work this time!!!')"})

编辑

这是一个带有asp.net小样本的ajax。

  1. Razor页(html页)中包含jQuerylib

    <script
         src="https://code.jquery.com/jquery-2.2.4.js"
         integrity="sha256-iT6Q9iMJYuQiMWNd9lDyBUStIq/8PuOW33aOqmvFpqI="
         crossorigin="anonymous"></script>
    
  2. Onchange下拉列表中绑定id='SelectedFileName'事件。

  3. 使用post方法进行ajax调用,并使用第三个参数回调函数获得MVC的结果。

看起来像这样,您可以在ShowAllMobileDetails动作中做一些逻辑。

$('#SelectedFileName').change(function(){
   //get id="SelectedFileName"
   $.post('Home/ShowAllMobileDetails', $("form").serialize(),function(data){
        alert(data);
   });
});

[HttpPost]
public ActionResult ShowAllMobileDetails(HomeVM MV)
{
    string SelectedValue = MV.Files.Count.ToString();
    // your logic

    string result = "Please work this time!!!";
    return View(result);        
}