【问题标题】:Calling a Controller Method with parameters from a View when a button is clicked (cshtml, c#, MVC)单击按钮时从视图中调用带有参数的控制器方法(cshtml、c#、MVC)
【发布时间】:2017-06-06 10:34:09
【问题描述】:

这是我的控制器,我想在其中调用方法 AnswerASelect。

namespace VotingWebApp.Controllers
{
   public class HomeController : Controller
   {

    public async Task<IActionResult> Home()
    {
        return View(await _context.QuestionItem.ToListAsync());
    }

    public async Task<IActionResult> Answer(int? id)
    {
        if (id == null)
        {
            return NotFound();
        }

        var questionItem = await _context.QuestionItem.SingleOrDefaultAsync(m => m.ID == id);
        if (questionItem == null)
        {
            return NotFound();
        }

        return View(questionItem);
    }


    public async Task<IActionResult> AnswerASelect(int? id)
    {
        var questionItem = await _context.QuestionItem.SingleOrDefaultAsync(m => m.ID == id);
        questionItem.AnswerAVote = questionItem.AnswerAVote + 1;
        await _context.SaveChangesAsync();
        return RedirectToAction("Index");
    }

这是我的视图,点击按钮时我想以模型作为参数调用 AnswerASelect 方法,类似于... AnswerASelect(model)

@model VotingWebApp.Models.QuestionItem

 @{
  ViewData["Title"] = "Answer Question";
 }

 <h2>@Html.DisplayFor(model => model.Question)</h2>


 <div class="container">
    <button type="button" class="btn btn-info btn-lg" onclick= "CALL AnswerASelect(Model)">@Html.DisplayFor(model => model.AnswerA)</button>

我希望找到一个简单的解决方案,非常感谢您。我是 Web App 开发的新手,我发现这很难学习。我看过一些类似的帖子,但我对它们并没有很好的理解,因此很难将解决方案应用于我当前的问题。

【问题讨论】:

  • 您可能只需要围绕 N 个单选按钮制作一个表单,并设置一些 JavaScript 以在其中一个被选中时提交表单。
  • 你想通过 onclick (javascript) 将模型传递给你的 Action 还是我认为你可以通过表单传递它?
  • 您可以将所有内容放在表单标签中并将该内容发布到操作方法“AnswerASelect”,在这种情况下,我们在该函数中的参数应该是模型类型,以便将发布的值映射到模型对象。

标签: c# asp.net-mvc razor web-applications asp.net-core


【解决方案1】:
 <h4 class="card-title addbutton">
        <button type="button" onclick="CreateModelDialog('@Url.Action("Create", "Controller",new {restaruntId =Model.RestaurantId})')" class="btn btn-info btn-rounded m-t-10  modal-link">Add</button>
    </h4>

  function CreateModelDialog(url) {
            debugger
            $(".modal-backdrop").remove();
            $('#modal-container').html("");
            $(".modal-backdrop").show();
            $(".stream-loader").show();
            $.get(url, function (data) {

                $(".stream-loader").hide();
                $('#modal-container').html("");
                $('#modal-container').html(data);
                debugger
                $('#modal-container').attr("style", "display:block !important");
            });
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 2018-08-24
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2011-09-27
    相关资源
    最近更新 更多