簡體   English   中英

回發后無法看到視圖

[英]not able to see the view after postback

嗨我有一個下拉列表,我綁定控制器中的一個我有一個按鈕視圖我正在做一些工作正常的驗證,

當我提交驗證檢查按鈕時,我無法獲取帶有錯誤消息的視圖。 而不是這個我得到這樣的錯誤“視圖'PostValues'或其主人沒有找到或沒有視圖引擎支持搜索的位置”。 任何人可以幫助我為什么我不能在這里獲得視圖視圖是強類型視圖,這是我在控制器中的代碼。

public class CrossFieldsTxtboxesController : Controller
{
        [AcceptVerbs(HttpVerbs.Get)]
        public ActionResult Index()
        {
            var model = NewMethod();              
            return View(model);
        }    
        private static CrossFieldValidation NewMethod()
        {
            var model = new CrossFieldValidation
            {
                SelectedValue = "Amount",
                Items = new[]
                {
                     new SelectListItem { Value = "Amount", Text = "Amount" },
                     new SelectListItem { Value = "Pound", Text = "Pound" },
                     new SelectListItem { Value = "Percent", Text = "Percent" },
                }    
            };
            return model;
        }
        [HttpPost]
        public ActionResult PostValues(CrossFieldValidation model1)
        {               
            model1 =  NewMethod();
            if (!ModelState.IsValid)
            {    
                return View(model1);
            }
            else
            {
                return RedirectToAction("Index");                       
            }                                               
        }    
    }

這是我的觀點

@model MvcSampleApplication.Models.CrossFieldValidation   
@{
    ViewBag.Title = "Index";
}
<h2>Index</h2>
@using (Html.BeginForm("PostValues", "CrossFieldsTxtboxes"))
{   
    @Html.ValidationSummary(true)
    <div class ="editor-field">
      @Html.TextBoxFor(m => m.TxtCrossField)
       @Html.ValidationMessageFor(m=>m.TxtCrossField)
    </div>    
       @Html.DropDownListFor(m=> m.SelectedValue , Model.Items)
     <input id="PostValues" type="Submit" value="PostValues" />
}

任何人都會對此有所幫助......

這條線

return View(model1);

查找名稱與調用它的操作完全相同的視圖。 PostValues操作調用此行假設有一個視圖PostValues.cshtml (顯然不存在)。 如果您仍想使用視圖Index - 您應該明確指定:

if (!ModelState.IsValid)
{    
    return View("Index", model1);
}

正如安德烈所說。 或者,您可以為PostValues方法添加其他標記:

[HttpPost, ActionName("Index")]
public ActionResult PostValues(CrossFieldValidation model1)
{
    if (!ModelState.IsValid)
    {    
        return View(model1);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM