2014-09-01 113 views
-1

我想单击按钮并在控制器中使用Next方法,但我不想去另一个视图!我想留在这里查看和我的财产应该改变。这种想法不工作:((我该怎么办呢?? 它我控制器ASP MVC按钮点击

public class VisitsController : Controller 
{ 

    Terminarz terminarz = new Terminarz(); 
    Daty data = new Daty(); 

    public VisitsController() 
    { 
     terminarz.aktualnaData = DateTime.Now.Date; 
     terminarz.pierwszyDzienTyg = data.pierwszyDzienTygodnia(terminarz.aktualnaData); 
     terminarz.ostatniDzienTyg = data.ostatniDzienTygodnia(terminarz.aktualnaData); 
    } 
    [ActionName("index")] 
    public ActionResult Index() 
    { 

     ViewBag.data = terminarz.aktualnaData; 
     ViewBag.pierwszyDzien = terminarz.pierwszyDzienTyg.ToString("dd/MM/yyyy "); 
     ViewBag.ostatniDzien = terminarz.ostatniDzienTyg.ToString("dd/MM/yyyy "); 
     ViewBag.wtf = terminarz.pierwszyDzienTyg.AddDays(7).ToString("dd/MM/yyyy "); 

     return View(); 
    } 

    [NonAction] 
    public ActionResult Next() 
    { 
     terminarz.pierwszyDzienTyg = terminarz.pierwszyDzienTyg.AddDays(7); 
     terminarz.ostatniDzienTyg = terminarz.ostatniDzienTyg.AddDays(-7); 
     return View("index"); 
    } 

}

我的模型

public partial class Terminarz 
{ 

    public DateTime aktualnaData { get; set; } 
    public DateTime pierwszyDzienTyg { get; set; } 
    public DateTime ostatniDzienTyg { get; set; } 
    public string nazwa { get; set; } 


} 

我看来

@ViewBag.pierwszyDzien<br /> 
@ViewBag.ostatniDzien<br /> 
@ViewBag.wtf 
@using (Html.BeginForm(FormMethod.Post)) 
{ 
    @Html.ActionLink("dalej","Next", "Visits") 
} 
@section Scripts { 
    @Scripts.Render("~/bundles/jqueryval") 
} 
+0

什么不起作用?在View()中指定一个字符串正是你指定一个特定视图的方式。 'NonAction'做什么?你为什么使用相同的观点?在页面请求期间没有任何更改?如果你想留在同一页面,为什么不通过AJAX发送数据到服务器而不是表单文章? – David 2014-09-01 21:18:45

+0

@David是对的,使用AJAX。 – 2014-09-01 21:25:40

+0

我的想法不起作用:/我想在我的视图中单击我的按钮(actionlink)并更改属性pierwszyDzienTyg,但保持在同一页面!我应该看到结果:)我该读什么,学习? thx for anser – rejentt 2014-09-01 21:33:50

回答

2

默认,控制器中的所有公共方法都可以从HTTP请求中调用,NonAction可以阻止公众方法从您的表单帖子被调用。从Next方法中删除NonAction属性,并且它应该按预期执行。

你也可能需要更新你的回报相匹配的相对路径是这样的:

return View("~/Views/Index.cshtml"); 

你的形式也不会被提交。您正在使用表单内的链接。试试这个:

@using (Html.BeginForm("Next", "VisitsController", FormMethod.Post)) 
    { 
     <button type="submit">Next</button> 
    } 
+0

仍然无法正常工作,错误“'System.NullReferenceException。”我的型号是空,当我要显示..它的错误这里 @foreach(以型号VAR项目) {​​@ item.pierwszyDzienTyg.ToString( “DD/MM/YYYY”) } – rejentt 2014-09-02 06:50:17