vinodh muthusamy Ответов: 1

Как работать с событием нажатия двух кнопок в движке MVC-ASPX


Я хочу создать файл журнала с помощью TimerControl в приложении MVC.

Я создал службу WCF и разместил ее на windows server. Теперь мне нужно использовать свой сервис в приложении MVC 4, используя кнопки" Пуск "и" стоп". Когда я нажимаю кнопку Пуск, служба должна запускаться, если я нажимаю кнопку стоп, служба должна останавливаться.

Я добился этого в приложении Windows, потребляя WCF. Но я новичок в MVC, я не знаю, как писать внутри start и stop.

Но я написал в индексе, когда загружается веб-приложение, Мой журнал запускается, но журнал должен запускаться, когда я нажимаю кнопку "Пуск". Не могли бы вы пожалуйста помочь мне.

Что я уже пробовал:

Вот код для службы WCF:

namespace WindowServicecode
{
    public class WindowServicecode : IWindowServicecode
    {
        public void Getmessage(string message)
        {
               FileStream fs = new FileStream(@"d:\ScheduledService.txt", FileMode.OpenOrCreate, FileAccess.Write);
                StreamWriter sw = new StreamWriter(fs);
                sw.BaseStream.Seek(0, SeekOrigin.End);
                sw.WriteLine(message);
                sw.Flush();
                sw.Close();
      
        }


    }
}



Смотреть:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>


<!DOCTYPE html>
<script runat="server">
  
</script>


<html>
<head runat="server">
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <%--<form id="form1" runat="server" method="post">--%>
    <form id="form1" runat="server" method="post">
        <div>

            <asp:Button ID="Button_start" runat="server" Text="Start"  />
             &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      <asp:Button ID="Button_stop" runat="server" Text="Stop" />
            <br />
            <br />
            <br />
            <asp:Label ID="Label1" runat="server" Text="Select Start Button to Start the service"></asp:Label>

        </div>
    </form>
</body>
</html>



Индекс:

namespace AutoMVCClient.Controllers
{
    public class IndexController : Controller
    {
        
        System.Timers.Timer timer = new System.Timers.Timer();
        WindowServiceHost.WindowServicecodeClient client = new WindowServiceHost.WindowServicecodeClient("NetTcpBinding_IWindowServicecode");
        // GET: /Index/

        public ActionResult Index()
        {
            
        
            client.Getmessage("start service" + DateTime.Now);
            timer.Elapsed += new System.Timers.ElapsedEventHandler(OnElapsedTime);
            timer.Interval = 10000;
            timer.Enabled = true;
            return View();
        }

       
        private void OnElapsedTime(object source, System.Timers.ElapsedEventArgs e)
        {
          

            client.Getmessage("Another entry at " + DateTime.Now);
        }

      
    }
}

1 Ответов

Рейтинг:
1

Er. Puneet Goel

Вместо того чтобы писать код запуска журнала в метод index, создайте новый метод. Вызовите этот метод при нажатии любой кнопки. Это можно сделать с помощью ajax-запроса или полностраничного сообщения.