Cant find метод: использование MVC httppost для добавления строк в хранилище таблиц azure

Я пытаюсь добавить строку в хранилище таблиц azure. Это мой первый раз, работая с этим, поэтому я следовал учебнику MS, к сожалению, они используют консольное приложение, а не MVC, поэтому мне пришлось немного импровизировать, в основном, при добавлении [httpPost]в мой AddRowметод я получаю ошибку http 404 «ошибка сервера в ‘/’ приложении.Не удается найти ресурс. «

Код (внутри HomeController):

[HttpPost]
        public ActionResult AddRow()
        {
            ViewBag.Message = "Your application description page.";

            try
            {
                CloudStorageAccount cloudStorageAcc = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));

                CloudTableClient cloudTableClient = cloudStorageAcc.CreateCloudTableClient();

                CloudTable table = cloudTableClient.GetTableReference("Users");
                table.CreateIfNotExists();

                Insert inserter1 = new Insert("Bob", "Contoso");
                inserter1.UserName = "Bobbie";

                TableOperation insertOperation = TableOperation.Insert(inserter1);

                table.Execute(insertOperation);
            }
            catch
            {
                return View();
            }

            return View();
        }

Я пытаюсь получить доступ к этому mysite.azurewebsites.net/Home/AddRow

1 ответ

  1. Когда мы делаем запрос в браузере, по умолчанию HttpMethod является HttpGet. Он не соответствует определенному HttpMethod (Httppost) в функции. Таким образом, он вернется выше ошибки. Мы обычно используем post метод для создания формы данных, затем мы можем определить httpMethod на странице просмотра.

    @using (Html.BeginForm("AddRow", "Home", FormMethod.Post))
    {
       // data or logic
    }
    

    Мы также можем использовать код или инструменты (postman,fidder) для вызова функции с определенным HttpMethod.

    Похоже, что вы задаете одно и то же значение [ partitionkey и rowkey ] для каждого http-запроса. Если это так, он просто может работать правильно в первый раз. Потому что [ partitionkey и rowkey ] является уникальным для tableEntity (запись). Подробнее см. документ .