如何在按钮onclick事件mvc4调用方法

本文关键字:mvc4 调用 方法 事件 onclick 按钮 | 更新日期: 2023-09-27 18:09:53

我在Inside of Razor视图中有一个方法。

<div style="height: 50px; padding-left: 10%; width: 100%">
                                <b style="font-family: Arial, Helvetica, sans-serif; font-weight: normal; font-size: xx-large">                                        
                                @functions {      
                                    public string schoolname()
                                    {
                                        if (Request.IsAuthenticated && !User.IsInRole("SuperAdmin"))
                                        {
                                            string currentUserName = User.Identity.Name;
                                            return GetHeaderSchoolName(currentUserName);
                                        }
                                        return string.Empty;
                                    }
                                    public string GetHeaderSchoolName(string userName)
                                    {
                                        Guid userId = SchoolBreifcase.Utilities.Common.GetUserId(userName);
                                        SchoolBreifcase.Repositories.AdminRepository adminRepository = new SchoolBreifcase.Repositories.AdminRepository();
                                        SchoolBreifcase.Models.Edmx.UserProfile userProfile = adminRepository.GetUserProfileByUserId(userId);
                                        string CurrentSchoolName = userProfile.School.SchoolName;
                                        return CurrentSchoolName + "xxx";
                                    }
                                                }
                            </div>

我在同一个剃刀视图里面有一个按钮。我在下面的button onclick事件(onclick="schoolname()")中调用了该方法(schoolname()),请参见下面的

<div class="logoHeader" style="float: right; width: 15%; padding-top: 5%;">                            
                             **<button onclick="schoolname()"> xx</button>**   
                        </div>

但是,它不工作。我的方法没有被调用,我不知道这个任务。你有什么想法吗?如何解决这个问题呢?

Updated:

我知道的程序有扔控制器、动作结果、get、post、java脚本、jquery等。我的问题是@functions的用途是什么?剃刀视角。我知道它有助于在razor视图内部编写服务器端代码。但我不能在一个按钮点击事件中调用这个方法。那么它有什么用呢?它只在页面加载时使用。

Finished my self:

见下面我的Razor视图函数:

<div style="height: 50px; padding-left: 10%; width: 100%">
                                    <b style="font-family: Arial, Helvetica, sans-serif; font-weight: normal; font-size: xx-large">                                        
                                    @functions {      
                                        public string schoolname()
                                        {
                                            if (Request.IsAuthenticated && !User.IsInRole("SuperAdmin"))
                                            {
                                                string currentUserName = User.Identity.Name;
                                                return GetHeaderSchoolName(currentUserName);
                                            }
                                            return string.Empty;
                                        }
                                        public string GetHeaderSchoolName(string userName)
                                        {
                                            Guid userId = SchoolBreifcase.Utilities.Common.GetUserId(userName);
                                            SchoolBreifcase.Repositories.AdminRepository adminRepository = new SchoolBreifcase.Repositories.AdminRepository();
                                            SchoolBreifcase.Models.Edmx.UserProfile userProfile = adminRepository.GetUserProfileByUserId(userId);
                                            string CurrentSchoolName = userProfile.School.SchoolName;
                                            return CurrentSchoolName + "xxx";
                                        }
                                                    }
                                </div>

和我使用javascript:window.location.href="schoolname"调用我的函数,它现在工作。

<div class="logoHeader" style="float: right; width: 15%; padding-top: 5%;">                            
                                 **<button onclick='javascript:window.location.href="schoolname"'> xx</button>**   
                            </div>

Thanks Guy's .

如何在按钮onclick事件mvc4调用方法

你做的完全错了,我的朋友,因为Asp.net Mvc不像经典的Asp.net Web Forms。我建议你看一下这本书以获得更多的信息。然而,为了解决你的问题,你可以很容易地在CShtml:

@{
var result = Request["YourButtonSpecialName"];   
 }
@if (result=="xx")
{
   <div>
button clicked
</div>    
}
<div class="logoHeader" style="float: right; width: 15%; padding-top:5%;">
<form action="YOUR CURRENT PATH">
<button type="submit" name="YourButtonSpecialName" value="xx"/>
</form>
</div>